//不帶引數
- (void)say
//帶有乙個引數
- (void)saywithname:(nsstring *)name
//帶有多個引數
- (void)saywithname:(nsstring *)name age:(nsinteger)age
//有返回值
- (nsstring *)info
//有返回值,並且帶有返回值
- (nsstring *)infowithname:(nsstring *)name age:(nsinteger)age
//無參無返回值
func say() -> void
say()
//輸出結果: hello
func say1()
say1()
//輸出結果: hello
//有參無返回值
func saywithname(name:string)
saywithname("cdh")
//輸出結果: hello cdh
//帶有多個引數
func saywithname(name:string, age:int)
saywithname("cdh", age: 20)
//輸出結果: hello cdh , i'm 20 years old
//無參有返回值
func info() -> string
print(info())
//輸出結果: name = cdh, age = 20
//有參有返回值
func info(name:string, age:int) ->
string
print(info("cdh", age:20))
//輸出結果: name = cdh, age = 20
//巢狀函式
var arr:array
= ["cdh","aarak","520"]
func showarray(array:[string])
}showarray(arr)
//輸出結果:
//cdh,
//aarak,
//520,
func bubblesort(inout array:[int])
let count = array.count;
forvar i = 1; i < count; i++ }}
}var arr1:array
= [50,20,30,80]
bubblesort(&arr1)
print(arr1)
//輸出結果: [20, 30, 50, 80]
func divisionopertaion1(a: double, b:double) -> double
func divisionopertaion2(dividend: double, divisor:double) -> double
func divisionopertaion3(dividend a: double, divisor b:double) -> double
print(divisionopertaion3(dividend: 10, divisor: 3.5))
func divisionopertaion4(a: double, divisor b:double) -> double
print(divisionopertaion4(10, divisor: 3.5))
//輸出結果:
func divisionopertaion(dividend: double, divisor:double) -> double
print(divisionopertaion(10, divisor: 3.5))
//輸出結果:2.85714285714286
//預設引數:
//可以在定義函式的時候給某個引數賦值, 當外部呼叫沒有傳遞該引數時會自動使用預設值
func joinstring(s1:string ,tostring s2:string, jioner s3:string) ->string
func joinstring2(s1:string ,tostring
s2:string, jioner
s3:string = "❤️")->string
print(joinstring2("hi", tostring:"beauty"))
//輸出結果:hi❤️beauty
func joinstring3(s1:string ,tostring s2:string,jioner:string
="❤️") ->
string
print(joinstring3("hi", tostring:"beauty", jioner:"��"))
//輸出結果: hi��beauty
func joinstring4(s1:string ,
jioner:string
="❤️",
tostring s2:string) ->
string
print(joinstring4("hi", jioner:"��", tostring:"beauty"))
//輸出結果: hi��beauty
func swap(var
a:int, var
b:int)
func swap(inout a:int, inout b:int)
var x1 =10;
var y1 =20;
print("交換前 a = \(x1) b = \(y1)")
swap(&x1, b: &y1)
print("交換後 a = \(x1) b = \(y1)")
//輸出結果:
//交換前 a = 10 b = 20
//交換後 a = 20 b = 10
func add(num1:int, num2:int, num3:int) -> int
print(add(1, num2: 2, num3: 3))
//輸出結果:6
func add(nums:[int]) -> int
return sum
}print(add([1, 2, 3]))
//輸出結果:6
func add(nums:int...) -> int
return sum
}print(add(1, 2, 3))
//輸出結果:6
func add(other:int, nums:int...) -> int
return sum
}print(add(99, nums: 1, 2, 3))
//輸出結果:6
//這兩個函式的型別是 (int, int) -> int
func sum(a: int, b: int) ->int
func sub(a: int, b: int) ->int
//可以利用函式型別定義函式變數和常量
varfuncp:(int, int) -> int = sum
funcp = sub
print(funcp(10, 20))
//輸出結果: -10
//函式型別可以作為函式的引數
func calfunc(a: int, b: int ,option:(int, int) -> int) ->int
print(calfunc(10, b: 20, option: sum))
print(calfunc(10, b: 20, option: sub))
//輸出結果:
//30
//-10
//函式型別可以作為函式返回值
func max(a: int, b: int) -> int
func min(a: int, b: int) -> int
func choosefunc(getmax:bool) ->
(int , int) -> int
varfuncp2:(int , int) -> int = choosefunc(false)
print(funcp2(10, 20))
//輸出結果: 10
Swift與OC語法對比
1.模擬於oc語句最後不再需要分號結束 2.不再有.m與.h檔案,只有乙個.swift檔案 3.方法呼叫由 obj x 1 y 2 變為 obj.x 1,y 2 4.方法宣告 oc void setview swift func setview 注 方便起見以下前乙個為oc語法,後乙個為swift語...
OC 基礎語法
1 obect c 與 c 語言的區別 1 字尾名不一樣,c語言是.c 結尾 oc 是 h結尾。2 輸出資訊不同 c語言是用print 輸出,oc 是用nslog輸出。3 nslog會自動換行,並且還有時間戳輸出,二print沒有 4 匯入宣告 檔案 不一樣 oc 是用import,而c語言是用in...
oc基礎語法 oc特有語法(1)
1 根據以前學的,呼叫方法是這樣的 student stu student new stu setage 100 int age stu age 如果用點語法,這樣就可以呼叫了 stu.age 100 int age stu.age 2 點語法的本質 其實點語法的本質還是方法呼叫,當使用點語法時,編...