Swift学习之语言基础

1、变量 关键字var 常量关键字 let
    定义变量 var stringVar="";  var IntegerVar:Integer="";

    第一种不指定类型,第二种指定变量类型,格式为【var 变量名:类型=值

2、数据类型   Stringintfloatdoublechar

    注意: Swift中String是值类型,这与 C# JAVA中都不太一样
        String属性isEmpty 空值检测
        String属性characters 获取每一个字符的值

    可选类型【?】

    String?Int?float?double?等

    如此声明的变量,在赋值时,如果有数据类型不符的值,则值为nil; 这在程序运行时赋值情况下,非常有用

3、数组定义

    var strings=["1","2","3","4"]

    var strings=["key1":"1","key2":"2","key3":"3","key4":"4"]

    第二种方式以键值对的方式定义,也可以定义为空数组

    var strings=[] var strings=[:] var strings=Dictionary<String,Int>()

4、创建对象不需要使用new关键字 直接调用构造器即可

5、 类型转换 String(变量常量),Integer(变量常量) Double(变量常量)

6、流控制 if、switch、for、for in、while

    for var i=0;i<10;i++{ if varstring!="" { } }

    for i in 1..100 { if varstring!="" { } } //..符为区间符 1..100表示1到100之间的数 包含最值

    while i<100{}

    这里有一个新的概念,区间符,是常见语言里比较少见或者少用到的:

    a)闭区间符,三个点组成【...】 ,上面循环里用到的就是 闭区间符,相当于1到100之间的,并且包含1和100的范围。 

    b)半开区间符,三个点与小于号大于号组成【...<】【>...】此处表示不包含最小值或不包含最大值的,范围区间。

7、函数声明与闭包

func 函数名(参数名:类型,参数名:类型)->返回值类型{}

调用:函数名(参数,参数)

func getA(key:String)->String{return "A"} getA("A");

func getB(key:String)->(String,String,String){return ("A","B","C")} getB("A")

func getC(key:String...)->String{return "ABC..."} get("A","B","C","D","E","F","G","H") //参数含有三个点,表示同类型参数可以有多个,

8、类的声明和使用

类中使用self关键字,代表对象自己,与C语言中的 this作用相同

重载关键字 override

构造函数 init(参数:类型) 可以选择有参或者无参

9、nil表示值缺失,null空指针

10、运算符 ,【+】【-】【*】【/】【%】【=】【++】【--】【+=】【-=】【<<】【>>】【>】【!】【<】【??】等常用运算符

  空合运算符 【??】,其相当于,a!=nil?a!:b; 或者 a!==nil?b:a!;

  注意:a和b 的数据类型必须一样,a的类型必须为Optional;

11、【元组】定义与用法:

  var result=(100,70,"hello world!")

  var result : (Int,Int,String)

  result=(40,50,"Hello World !")

  元组之中还可以嵌套

  var composite=(100,30,("",""))

  var composite : (Int,Int,(String,String)) 

  composite=(30,20,("Hello","World"))

  元组中的元素还可以声明Key,这种方式真令人一见倾心,我见犹怜,爱死个人咧

  var dicResult : (ID:Int,Name:String,Age:Int)

  dicResult=(ID:1,Name:"小二郎",Age:9)

  dicResult=(Name:"小二郎的同桌",Age:19,ID:2) //因为这里定义了Key,所以顺序可以随意变换

原文地址:https://www.cnblogs.com/lwhsleep/p/5441434.html