• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Swift基础语法(一)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

  swift是一个基于objc进化过来的一个新的 OS X/IOS编程语言,而objc是基于c语言进化过来的一门编程语言。所以理论上说objc与c++是同一代产物并且objc与c++是相互独立的两套体系,知道这些以后你就不难理解为什么objc与c++混编要把文件名改成mm而objc与c混编不用修改文件名了

常量与变量

  在swift中常量用let定义,变量用var定义

  定义格式

 1 //定义并且不赋值
 2 //常量
 3 let 标识符 : 数据类型?
 4 //变量
 5 var 标识符 : 数据类型?
 6 //定义且赋值
 7 //常量
 8 let 标识符 : 数据类型= 9 //变量
10 var 标识符 : 数据类型=值

  特别说一下swift的标识符是用Unicode字符编码表示的,也就是说你出来不能用数字、敏感字段定义变量,其余的各种文字随便用这与objc和c/c++有很大不同。objc和c/c++的标识符是用ASCⅡ码实现的。知道这个原理之后,我做了个实验。

//函数声明
func 测试函数(text:String){
        println("\(text)")
    }
//函数调用
测试函数("22222")

  编译、执行一切OK

基本类型

  基本类型这一块swift是兼容objc类型的我只对新增类型做一个介绍

数字类型

  swift的数字类型有Integer/Int/Float/Double

  Integer类型其实就是objc里的Int8类型

  Int/Float/Double 根据运行机器的CPU位数作为变量位数。比如在iPhone5上Int是Int32而在iPhone5s上Int是Int64以此类推

  数字表示:

  十进制:直接写数字 比如var a =10

  二进制:0b加数字 比如 var a=0b1010

  八进制:0o加数字 比如 var a=0o12

  十六进制:0x加数字 比如 var a= 0x0A

  以上这四个变量的十进制表示都是10

类型别名(typealias)

  swift里的typealias相当于c语言里的typeof

布尔类型

  swift里的bool相当于与oc里的BOOL只有两个值:true ,false

  swift里的条件判断返回的都是bool 

//在c里我们可以这么用if
int a=1;
if(a)
    printf("%d",a);
//但我们同样的代码放到swift里
var a:Int=1
if a{
    println(a)//error
}

 

元祖(Tuples)

  swift里的tuples当我第一次看到他时,以为他是数组(我X,数组不是Array么?Tuples是什么鬼)仔细一看不是。它既能当数组又能当强类型字典,官方文档里说主要用于函数返回。其实我认为它就是个多功能的结构体(c++),随时使用定义简单

//定义方式1
let a=(15,"age")
//输出15
println(a.0)
//输出age
println(a.1)
//定义方式二
let b=(name:"Tony",age:15)
//输出name:Tony age:15
println("name:\(a.name) age:\(a.age)")

可选类型(Optionals)

  与其说Optionals是基本类型不如说它是每个基本类型的必要属性,如果有值Optionals为true反之Optionals为false。

var a="123"
if let b=a.toInt(){
    println(b!)
}

  如果if后面直接加一个变量是判断这个变量有没有值。 b后面的感叹号是代表b不为nil toInt()函数是把字符串转换为Int类似 你可以把if去掉再把123改成hello试试看会发生什么

调试专用函数

  调试专用函数assert(条件,字符串)如果条件不成立输出字符串

 

今天就写这么多,如有错误尽请指教。本人感激不尽


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Swift:下标(Subscripts)发布时间:2022-07-13
下一篇:
用swift开发仪表盘控件(一)发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap