Swift的基本语法与OC的基本语法对比 (Swift)

  : Playground - noun: a place where people can play


import UIKit


var str = "Hello, playground"



本文章总结swift的一部分基本语法(常量变量,判断语法[if guard switch],循环语句,字符串,字典,元组,可选类型,.... )还有其他语法会后序更新

swift相比OC 少了一点点灵活性 但是swiftOC更加严谨 更加负有逻辑性 如果经常打OC的代码需要多点时间来适应swift的语法 相对学过JAVA来说一些

语法还是挺接近

开车吧

/******************常量和变量**********************/


swift当中常量和变量必须在使用前声明

let来声明常量,用var来声明变量


常量定义方式:

可以用任何你喜欢的字符作为常量和变量名,包括Unicode字符


常量与变量名不能包含以下:

数学符号,箭头,保留的(或者非法的)Unicode码位,连线与制表符。

也不能以数字开头,但是可以在常量与变量名的其他地方包含数字。


定义的3种方式

1.先定义再初始化

var number :Int  Swift:注意关键字大写

number = 100


2.定义同时初始化

var number1 :Int = 100


3.可以不写数据类型->编译期会根据初始化的值自动推断出变量的类型(类型推断机制)

var age = 100

常见的写法一般都是 第二种和第三种


注意swift没有隐式转化只能用强转(OC中可以隐式类型转换)

var int = 100

var double = 12.1

let number = int + Int(double)

print(number)


  注意 OC中一般浮点型 一般都是float  但是在 swift 都是double

  常量的本质:指向的内存地址不可以修改,但是可以通过内存地址取出对象的内部属性进行修改'


/******************运算符**********************/

    > < >= <= == != ?:


除了取模,其它和OC一样,包括优先级

注意:Swift是安全严格的编程语言,会在编译时候检查是否溢出

但是只会检查字面量而不会检查变量

所以在Swift中一定要注意隐式溢出

遇到这种问题可以利用溢出运算符解决该问题:

http:  www.yiibai.com/swift/overflow_operators.html


关系运算符,得出的值是Bool,基本用法和OC一样

C语言的Bool类型非0即真

OC语言的Bool类型是typedef signed char BOOL;


Swift引入了真正的Bool类型(没有非0即真)

Bool true() false()

逻辑运算符在swift当中只能操作Bool类型数据(避免了if(isOpen == 2)判断写错if(isOpen =2))


Swift:不允许连续赋值, Swift中的整个表达式是没有值的.

主要是为了避免if (c == 9)

这种情况误写为if (c = 9) ,c = 9是一个表达式,表达式是没有值的

所以在Swiftif (c = 9)不成立


下面这个写法是在swift当中不允许的(OC中可以连续赋值)

var num1:Int

var num2:Int

num2 = num1 =10


/******************运算符之逻辑分支**********************/

区间


闭区间:包含区间内所有值a...b例如: 1...5


半闭区间:包含头不包含尾a..


注意: 1.Swift刚出来时的写法是a..b


2.区间只能用于整数,写小数会有问题

  for的三种格式

for var i = 0; i<10 ; i++ {

    print(i)

}


区间格式

for i in 0..<10 {

    print(i)

}

for _  in 0..<10 {

    

}



if int >= 80 {

    print("我已经\(int)")

    

}

  guard : (守卫) 这个判读语句只有swift 才有

func duodale (int:Int) {

    

    guard int < 50 else { 满足条件直接return

        print("还是豪生仔")

        return

    }

    guard   int < 80 else {

        print("老是老,古古还是功力厚")

        return

    }

      当上面的情况全都不满足了就会执行到这来

    print("hehe老是老,古古还是功力厚")

}


  调用该判断

duodale(int)



/*switch


1.switch后面的()可以省略

2.case结束后可以不加break,如果不加,系统会默认加上break

基本使用补充:

1.swift中的switch case后面是可以判断多个条件, 并且多个条件以,分割

2.如果非常的希望产生case穿透,可以在case结束后加上fallthrough

*/


switch int {

case 8 :

    print("888")

case 29:

    print("292929292")

default:

    print("case结束后可以不加break,如果不加,系统会默认加上break")

}


  多个条件

switch int {

case 90, 100 :

    print("

你可能感兴趣的:(Swift)