swift 中可以不写分号 用print打印
let 是不可变的
var 表示可变的
var a : Int = 10;
var c : float = 10.13
在swift 中相加的必须是同类型
print (a + c) 会报错
在swift 中 可以用特殊符号定义变量
var 老王 = 18;
在swift 中 字符串可以相加
var 皮卡丘 = "皮卡丘";
var 青蛙 = "青蛙";
print(皮卡丘+青蛙); //皮卡丘青蛙
//数组
var array = [int]();
var array = [17,18,19,20];
//增加 增加在后面
array.append(50);
//指定位置
array.insert(30,atIndex:0);
//指定位置 删除
array.removeAtIndex(0);
//改
array[0] = 500;
//查 (就是打印)
print (array);
//字典
//定义一个空字典
var dict = [String : String]()
//定义字典
var dict = ["key1" : "value1",
"key2" : "value2" ];
//增
dict.updateValue("value3",forkey:"key3");
//删
dict.removeValueForkey("key3");
//改 在swift 中 updateValue 不仅可以增加还可以修改
dict.updateValue("value4",forkey"key1");
//分支语句 在swift中true就是代表yes false代表no
//switch 语句 在switch语句不需要break 但是必须要default,那如果想顺序执行下去,加上fallthrough
let number = 0
case 0 :
print("哈哈");
fallthrough;
case 1 :
print("嘿嘿");
fallthrough;
case 2 :
print("嘻嘻");
fallthrough;
default:print("嚯嚯");
}
while 循环语句
for 循环语句
for in 语句
var animals = ["猫","大黄","老鼠","蛇"];
for var i in animals{
//枚举
enum season{
case Spring
case Summer
case Autumn
case Winter
}
print(season.Spring.hashValue)//原始值
enum season1 : Int{{
case Spring = 1
case Summer = 2
case Autumn = 3
case Winter = 4
}
print(season1.Spring.rawValue)//自定义
// 元组 可以存放不同类型的数据 如果没有定义属性名,下面调用的时候,元祖自己会有下标,那如果自己自定义了属性,就可以点出属性名,来调用对应的下标
var your = (name:"皮卡丘", age:22,height:170)
print(your);
var my = ("刘姐",17,190);
print(my.0);
//无参有返回值的
func test4() -> Int{
return 3;}
print(test4())
// 有两个返回值的函数
func test5(a:Int,b:Int) ->(Int,Int){
return(a+b,a-b)
}
let yourAge = 18;
let myAge = 20;
print(test5(yourAge, b:myAge));
print(test5(yourAge, b:myAge));
//在swift 中所有的方法的参数默认是let定义的,如果想修改这个参数,只能把这个参数用var 修饰一下 inout 也是能修改参数的!如果用inout的话,是通过取地址修改的
//_ 代表可以忽略
// 结构体
struct guoYanFang{
var name:String
var age:Int
var sex:String
var yourBF:String
//结构体中还可以放方法,用static修饰的方法相当于类方法
func test(){
print("哈哈哈")
}
static func test1(){
print("好好好")
}
}
//闭包 (其实就是我们oc中的block) 无参无返回值
var block:() -> Void
block = {
print("汤姆和杰利")
}
block()
// 如果这个闭包有参 name下面实现的时候 必须要加上in
var maxblock1:(a:Int,b:Int) ->Int
maxblock1 = { (a: Int,b:Int)in
return a > b ? a : b
}
//简单的写法
maxblock1 = { (a,b) in
return a > b ? a : b
}
//闭包也是可以重新命名的
typealias myBlock1 = () ->Void
var block2:myBlock1 = {
print("霍霍哈哈哈")
}
block2()