zoukankan      html  css  js  c++  java
  • swift 日记一

    语法中可以看到oc java c p语言的影子,也借鉴了这些语言的特点

    同时具备 编译型语言的高性能和脚本语言的灵活交互性

    可以轻松地与c oc混合使用(互相调用)

    swift 的源文件的拓展名是。swift

    不需要编写main函数

    不需要在 每一条语句后面加上分号(注意:如果一行代码山共有多条语句时,需要加上分号)

     常量和变量 

    用let来声明常量

    eq:let radius = 10;

    用var来声明变量

    eq: var  age = 20

    打印

    println(“hello world!”)

    字符串的拼接直接用+号

    插入直接()

    var age = 10

    eq:var str = "i have (age)"

    数据类

    Int Float Double Bool Character String 

    Array Dictionary 元组类型(Tuple)可选类型(Optional)

    数据类型名称首字母都是大写的

    定义类型

    在常量变量名后面加上冒号(:)和类型名称

    let age: Int = 10

    上面代码表示:定义了一个Int类型的常量age,初始值是10

    一般都是不会明确指定变量和常量的类型的

    如果在声明常量,变量时赋了初始值,Swift可以自动推断出这个常量,变量的类型

    let age= 10

    Swift严格要求比那里在使用之前必须进行初始化、

    整数的4种表现形式 

    十进制数 没有前缀

    二进制数 0b前缀

    八进制数 0o前缀

    十六进制数 0x前缀

    浮点数

    Double 精度高 64位浮点数 至少15为小数

    float 精度低 32为浮点数 至少6位小数

    不同精度的类型的数也不能相加

    浮点数的表示形式

    浮点数可以用十进制和十六进制2种进制来表示

    十进制(没有前缀)

    没有指数:let d1 = 12.5

    有指数:let d2 = 0.125e2

    //0.125e2 ==0.125 *10的2次方

    十六进制(0x前缀)

    0xc.8p0//0xc.8p0 == 0xc.8 *2的0次方

    数字可以增加额外的格式,使他们更加容易阅读

    可以增加额外的零0

    let money = 001999 // 1999

    可以增加额外的下划线_,增加可读性

    let oneMillion1 = 1_000_000//1000000

    增加了额外的0和下划线_,并不会影响原来的数值大小

    类型别名(相当于在OC中的typedef)

    可以使用typealias关键字定义类型的别名,跟C语言的typedef作业类似

    typerlias MyInt = Int 

    //给Int类型起了一个别名叫做MyInt

    原类型名称能在什么地方,别名就能在什么地方用

    获得类型的最值

    let minValue = MyInt。min

    获得类型转换

    let num= Myint(3.14)//3

    运算符

    在OC的基础上增加:

    范围运算符:..<、...

    赋值:

    let(x,y)=(1,2)

    跟OC不一样的是:Swift的赋值运算符没有返回值

    可以防止误用 = 与==

    在Swift中求余可以对小数进行取余

    8 % 2.5 = 0.5

    BOOL类型

    在C语言中:0是假,非0就是真;而在Swift中没有这种概念

    Swift中只有对和错 没有01什么的

    if语句的结果必须是bool类型只有true和false

    三目运算符的条件返回的结果必须是bool的

    范围运算符

    闭合运算符 a...b 表示[a,b],包含a和b;

    半闭合范围运算符:a..<b,表示[a,b)表示包含a,不包含b;

    for i in 0..<5

    i 从 0到4

    溢出运算符

    Swfit为整型计算提供了5个&开头的溢出运算符,能对超出取值范围的数值进行灵活的处理

    &+   let x = UInt8.max  let y = x &+ 1    //y=0

    &—

    &*

    &/ let x = 10 let y = x /0报错let x = 10 let y = x &/0 不会报错  y的值是0

    &%

    元组类型

    元祖类型有N个任意类型的数据组成(N》=0)

    组成元祖类型的类型可以成为“元素”

    let person = (name :“zhangsan”,x = 10, y = 1.5)

    访问 peson.name person.x    也可以  person.1   person.2

    元祖的输出

    可以省略元素名称 let positong = (10,20)

    可以明确指定类型 let person (Int,String) = (1,"jack")元素名称和元素类型不能共存

    可以使用下划线_忽略某个元素的值,取出其他元素的值

    var person = (20,“jack”)

    var (_,name) = pernon

  • 相关阅读:
    c#中@的3种作用
    iOS7 各种问题解决
    时钟
    京东APP(部分)-安卓
    博弈取石子
    博弈取牌
    年月日
    猪(恶作剧程序)
    字符统计
    奇偶类约瑟夫
  • 原文地址:https://www.cnblogs.com/naizui/p/5084602.html
Copyright © 2011-2022 走看看