标签:
第一次接触swift语言是在2014年年底,曾经的曾经iOS开发是OC的主场,因为工作原因我也并没有花心思去整理一些相关文档,如今一线城市科技公司对开发潮流的追赶已经势不可挡,当再看swift语言,苹果对其语言的规范上已经有了很多改变,god!苹果公司这次是下了多大的决心?废话不多说,先说一下swift函数吧!
一 首先创建一个命令行的swift工程
action->
enter->
选择swift语言,这个大家都知道啦!!!
看到紫色框框了吧,完了这就是我们swift的主函数,14年的默认的打印函数是println("hello world!"),还记得吧,但是随后被苹果rename成红色框框这个样子了,不变的是一句完整的语句结束不需要像OC一样添加";",当然了你添加了也不为错,接着为了讲明函数,我另外创建一个swift文件,如下:
来到我们的FunctionTest.swift文件:
import Foundation //函数以func开头,表示一个函数 //参数与参数之间, 分割 //v1 v2表示参数:String表示参数的类型 //->表示返回值是String类型 func testConcat(v1:String, v2:String)->String{ return "\(v1) and \(v2)" } //标签是OC的优点,swift把OC里面的标签吸收过来 //testConcat2:andValue:andNummber func testConcat2(v1:String, andValue v2:String, andNummber:Int)->String{ return "\(v1) and \(v2) and \(andNummber)" } //参数0个,返回值是3个 func getInfo()->(String,String,String){ return ("xzr","iOS","swift") } //函数嵌套函数,这点类似于lua脚本语言 func testFunctionInFunction()->Int{ var y = 10; func add(){ // var y = 1;//下面的y会选择最近作用域的变量,这个地方我打印的值是10,后续待看。。。 y += 5; } add(); return y; } //这个一个函数,返回值是(Int ->Int) func getFuncPointer()-> (Int ->Int){ func addOne(num:Int)->Int{ return num + 1 } //这里返回一个函数的地址 return addOne; } func testFunction(){ print("开始测试函数") let v = testConcat("hello",v2: "world"); print("v is \(v)") //andValue:称为一个标签 let v2 = testConcat2("xzr", andValue:"SwiftStudy",andNummber:100) print("v2 is \(v2)") let (v3,v4,v5) = getInfo() print("v3 \(v3) v4=\(v4) v5=\(v5)") let v6 = testFunctionInFunction() print("v6 = \(v6)") //函数指针 let funcPointer = getFuncPointer(); let v7 = funcPointer(99) print("v7 = \(v7)") //把函数地址/指针作为参数 let arr = [20,10,30,3,59,5,60] let v8 = hasAnyMatch(arr, condition: lessThanTen) print("v8 = \(v8)") } func hasAnyMatch(list:[Int],condition:Int ->Bool) ->Bool{ for item in list{ if(condition(item)){ return true } } return false } func lessThanTen(number:Int) -> Bool{ return number < 10 }
总结:稍后完善。。。
标签:
原文地址:http://www.cnblogs.com/xuanzhangran123/p/5154924.html