一段swift的旅程
———-听实习的学长说 已经开始了swift的时代 - - 填坑啊。OC还没玩6 就跳出了swift来交流感情了
先把基础语法看起来吧 - -.
一、定义声明变量
//var开头 申明一个变量 apple就是变量名 swift中声明变量要赋初始值
var apple = 0
apple = 100;
println("a的值是\(apple)");
//String()
println("my apple is" + String(apple));
//: 标示类型 Int表示申明类型
var apple2 : Int = 200;
//swift 是弱类型
var apple3 = 300;
//let表示定义一个不可以改变的变量
let apple4 = 200;
//可以用汉子等语言定义变量名字(不过感觉编程一般不会这么干的)
var 中国 = "56个民族";
println("中国是\(中国)")
二、循环
//定义一个分数
var score = 100;
//定义一个数组
var scoreArr = [10,20,30,40,50,60,70,80];
var minScore = 0;
var maxScore = 0;
var sumScore = 0;
var avgScore = 0.0;
var count = scoreArr.count;
//循环数组所有的元素
for num in scoreArr{
println("num is \(num)");
sumScore = sumScore + num;
//判断大小值
if (minScore == 0 || minScore > num){
minScore = num;
}
}
println("sumScore = \(sumScore)");
avgScore = Double(sumScore) / Double(count);//强转
println("avgScore is \(avgScore)");
println("minScore is \(minScore)")
do while
var index = 0
do{
if (index >= count){
break; //swift中 break 要加{}
}
var num = scoreArr[index]//取得第i个元素
println("do-while num[\(index)]=\(num)")
}while(++index < count)
Switch 在switf中不会穿透了
//switch 之前会穿透
switch appType{
case "iOS":
println("iOS开发");
fallthrough //穿透,往下走
case "Android":
println("Android开发");
case "WindowsPhone":
println("WindowsPhone开发");
default:
println("没有适配");
}
三、函数
- 以func开头表示一个函数
- :String表示参数类型,
- ->String 表示返回值类型
func testSun(n1:String, n2:String) -> String
{
return "\(n1) and \(n2)"
}
swift把oc中标签拿过来, 一般从第二个参数开始用标签
//swift把oc中标签拿过来, 一般从第二个参数开始用标签
func testSun(n1:String, andValue n2:String,andNumber n3:Int) -> String{
return "\(n1) and \(n2) and \(n3)"
}
func testFunction(){
let show2 = testSun("ll",andValue: "fff",andNumber:100)
println("fff is \(show2)")
}
testFunction()
swift一次可以返回多个参数
func getNumber() ->(String,String,String){
return ("Hello","Apple","iOS")
}
let (v1,v2,v3) = getNumber()
println("v1=\(v1) v2=\(v2) v3=\(v3)")
函数内部可以嵌套函数
① 嵌套函数能用外部变量,若内部又给所用变量赋值 就作用域 就近选择最近同名变量
②若函数有返回值,所以指令在return 之前执行才有用
func testFunctionInFunction() ->Int{
var y = 6
func add() ->Int{
// y = 0 //①
y += 6
//println("\(y)")
return y
}
add()
//println("\(y)") ②
return y
}
let v5 = testFunctionInFunction()
println("\(v5)")
函数指针
swift中没有明确函数指针
func getFunction() -> (Int -> Int){
func addNumber(n1 : Int) -> Int{
return n1
}
//返回一个函数 地址
return addNumber
}
//函数指针
var functionPointer = getFunction()
var v1 = functionPointer(1)
println("v1 is \(v1)")