您的位置:首页 > 移动开发 > Swift

swift 基础知识

2015-12-21 16:32 260 查看
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

switch number{

case 0 :

print("哈哈");

fallthrough;

case 1 :

print("嘿嘿");

fallthrough;

case 2 :

print("嘻嘻");

fallthrough;

default:
print("嚯嚯");

}

while 循环语句  

var age = 5;
while age > 0{
  age--      //必须挨着写
printf(age);
}

for 循环语句

for var i = 0; i < 10; i++{
printf("\(i)");
}

for  in 语句

var animals = ["猫","大黄","老鼠","蛇"];

for var i in animals{

print(i);
}

//枚举
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 test() ->Void{
print("哈哈哈");
}

有参无返回值
func test2 (name : String) ->Void{
}

//无参有返回值的
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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: