Swift 基础

1.hello world

swift中的helloworld十分简单 println("hello world")即可完成hello world

2.变量 常量

swift的变量使用var关键字,常量使用let关键字

比如:

let max=10  // swift 一个语句结束可以不需要分号

var login=0

定义多个变量或常量

var x=1.0 ,y=2.0

let j=3,k=4

在定义变量和常量的时候可以在变量名的后面加上类型

比如:

var current:Int=1

这样写就明确指明了current这个变量是一个整形

其实swift是可以不需要指定类型的程序运行的时候就会自动判断类型

swift中的println方法支持字符串插值

比如:

var a=1;

println("hello\(a)")

可以看到输出时hello1

3.注释

swift的注释符号是 //  /*  */

分别是单行注释和多行注释

4.整形

整形分为有符号的和无符号的

无符号的包括0和正整数

有符号的还包括负整数

在32位的系统上 Int类型占据32位 4个字节

在64位的系统上 Int类型占据34位8个字节

可以通过Int.max Int.min 取得Int类型的最大值和最小值。

5.浮点型

浮点型分为float double两种类型

float类型32位 double类型64位 float类型可以精确到小数点后的6个数 double可以精确到小数点后的15位数

6.类型安全和类型推断

类型推断是根据定义变量的时候初始值来去定变量的类型的。

比如

let a=2  swift会推断为Int类型

let pi=3.2333 swift会推断为Double类型

swift定义变量的时候可以在变量名称之后加上类型,如果赋给变量的值的类型有问题就会出现编译错误,这就是swift的类型安全。

7.数值型字面量

常用的有十进制 二进制 八进制 和十六进制

let 十进制的10=10

let 八进制的8=0o10  //八进制要在前面加上0o

let 二进制的2=0b10 //二进制要在前面加上0b

let 十六进制的16=0x10 //十六禁止要在前面加上0x

科学计数法

let 一百万=1e6 //表示1乘以10的6次放

let 一百万分之一=1e-6 //表示1乘以10的-6次方

16进制的科学计数法

let 十五的16进制的二次方=0xFp2

let 十亿元=1_000_000_000 //表示的整形1000000000

let 五块钱=0_000_000_005

8.数值类型转换和类型别名

swift如果变量时不同的类型进行运算的时候不能直接进行运算需要进行一下转换,这一点和java中是不一样的,java会自动帮你转换类型,个人觉得这一点很不方便。

比如

let a:Int16=100

let b:Int8=10

let c=a+b //此时会报错(这在java中是没有的)

需要这样写

let c=a+Int16(b)

let 三=3

let 零点一四一五九=0.14159

let 圆周率=三+零点一四一五九 //此时也会报错 两个变量类型不一致 一个是Int类型 一个是Double类型

需要这样写

let 圆周率=Double(三)+零点一四一五九

let 圆周率整数位=Int(圆周率)+三

变量之间相加相减需要进行类型转换

字面量之间进行相加时不需要转换的

比如:let a=3+0.33   编译时没有问题的

swift中可以使用typealias 对已有的类型进行类型别名的定义

typealias 整形=Int

var z:整形=0

var max=整形.max

9.布尔类型

swift的中的布尔类型是Bool

使用该类型定义的变量只有 true 或false两个值

let 橘子是橙色的=true

let 萝卜好吃=false

let i=1

if i {   // 这种写法在swift中是无法编译的

}

if i==1{ //这样是可以的

}

10.元组

元组可以把其他的类型组合起来

比如:

let 昨天我网购的一件衬衫=(70,"黑色",true)

也可以这样定义

let(价格,颜色,合身)=昨天我网购的一件衬衫

这样写就可以通过 价格  颜色 合身 这几个变量名把元组中的元素取出来。

可以通过如下方式访问元组中的元素

println(昨天我网购的一件衬衫.0) // 70

println(价格)//70

let 昨天我网购的一件衬衫=(价格:70,颜色:"黑色",合身:true)  //注意别名没有引号

此时也可以通过 别名来访问元组中的元素 比如想要取到价格 就直接可以这样写:昨天我网购的一件衬衫.价格

11.可选类型 拆包和绑定

当一个值的可能会存在值不存在的情况的时候我们就会用到可选类型

比如在下面的程序中

let 昨天我买的彩票="50"

let 中奖金额=昨天我买的彩票.toInt()  // 这个方法 返回一个可选的类型

if 中奖金额 {  //可选的类型可以用在if 语句中 如果有值 那么就相当于 true 如果没有值 那他等于nil 相当于false

println("恭喜你中了\(中奖金额!)元")

中奖金额!的意思是对可选类型进行拆包 获取到其中的值  对可选类型进行拆包的时候需要提前进行一下是否有值的判断

比如下面这样写就会有问题

let 昨天我买的彩票="hello world"

let 中奖金额=昨天我买的彩票.toInt()

println("恭喜你中了\(中奖金额!)元") //这样写运行的时候就会报错 因为这个可选类型的值是nil

可选绑定

在对一个可选的变量进行解包的时候如果想要对他保存下来进行一些操作可以使用如下的方式

if let 临时金额=中奖金额{

println("恭喜你中奖了\(临时金额)")

}else{

println("下次加油")

}

swift中的可选类型使用下面的方式定义

var a:Int?

此时a就是一个Int?类型在没有赋值的情况下 变量a的值就是nil  在oc中nil是一个指针,在swift中nil只用在可选类型没有值的情况

12.可选类型 间接拆包

如果可以判断一个变量一定有值这个时候可以把他定义为一个间接拆包类型

let 彩票金额:String!="5"

println("此次彩票中奖金额是\(彩票金额)")

此时就不需要使用!进行拆包了

间接拆包类型也可以这样写

if let 临时金额=彩票金额{

println("此次彩票金额是\(临时金额)")

}

如果可以确定变量的值在程序运行的整个阶段都是存在的 就可以定义这个变量为间接拆包类型

13.断言

var 年龄=18

assert(年龄>18,"必须年龄满18岁方可继续本游戏")

此时不满足条件 程序终止。

断言会导致你的程序立即终止,一般在app发布之前程序调试的时候使用

时间: 2024-08-03 15:16:05

Swift 基础的相关文章

从Pitre《Swift 基础教程2nd》开始

看了两天<Learn Objective-C on the MAC> 中文版本<Objective-C基础编程>,大概认真读到了第9章内存管理部分,感觉这语言可比C++简单多了. 第一天,因为有C语言基础的缘故,我在windows 上安装了GNUstep (Objective-C)开发环境,变看电子书籍,边在PC上编译运行树上的示例,几乎一个都没放过,还做了不少笔记. (毕竟作者 Mark Dalrymaple & Scott Knaster 是高屋建瓴,叙述技术娓娓道来,

3.Swift基础知识

Swift是用来开发iOS和OS X应用的新语言,但是许多地方用起来跟C或者OC是差不多的. Swift提供了C语言和OC的基本数据类型,比如整型用Int,浮点型用Double或者Float,布尔型用Bool,字符串文本用String,Swift还提供了两种集合类型,Array和Dictionary,后面会介绍. Swift也跟C一样用唯一的变量名来存储与使用数据,还能使用一些值不会变的变量,应该说是常量,比C里面的常量要强大.在涉及到一些值不会发生变化的数据时使用常量类型能让代码更安全整洁.

随手记Swift基础和Optional Type(问号?和感叹号!)

距离Apple推出Swift已经有几天了,网上也时不时出现"急招Swift程序员,要求有一天工作经验"的帖子. 看到Swift,除了苹果放的另外一门语言的链接(http://swift-lang.org/),还可能联想到Taylor Swift,或者铃木雨燕. 这几天网上关于Swift的话题和材料应该迅速膨胀,比如StackOverflow的相关标签,还有知乎上的一些相关讨论. 关于Swift的推出,我个人觉得对现有的使用Objective-C的iOS开发者不算是很大的冲击,毕竟写代码

Swift基础语法(常量变量、数据类型、元组、可选、断言等)

Swift 是 iOS 和 OS X 应用开发的一门新语言.然而,如果你有 C 或者 Objective-C 开发经验的话,你会发现 Swift 的很多内容都是你熟悉的. Swift 的类型是在 C 和 Objective-C 的基础上提出的,Int是整型:Double和Float是浮点型:Bool是布尔型:String是字符串.Swift 还有两个有用的集合类型,Array和Dictionary,请参考集合类型. 就像 C 语言一样,Swift 使用变量来进行存储并通过变量名来关联值.在 Sw

Swift学习——Swift基础详解(四)

A:小儿编程很不好! B:多半是不爱学,从看英文版开始,让你爱上编程! Type Aliases    类型重定义(typedef) Swift中重定义类型的关键字是typealias,至于怎么用,应该不必多说了,看例子: typealias AudioSample = UInt16 //定义了一个类型名称AudioSample,代表UInt16类型 var maxAmplitudeFound = AudioSample.min // maxAmplitudeFound is now 0 Boo

Swift基础 - - 高德地图实践(一)

高德地图开发需要自己到官网http://lbs.amap.com/console/ 注册一个ak,新建一个swift工程,然后在Info.plist中添加一个NSLocationAlwaysUsageDescription或者NSLocationWhenInUseUsageDescription. 高德地图的库以及依赖库加入到项目里面 需要的库如下截图: 添加头文件 具体的方式见Swift基础--调用第三方OC项目,在Bridging-Header.h中加入如下代码,这样我们就可以调用高德地图相

Swift学习——Swift基础详解(一)

注:由于基础部分在Swift Tour 中已经大体的说明了,所以在详解中不会达到100%的原文释义 Constants and Variables  常量和变量 常量和变量都需要声明名称和类型(作为程序员,这些基础也就不说了),常量一次赋值不能改变,变量的值可以改变 Declaring Constants and Variables   声明常量和变量 常量和变量在使用之前必须要声明,使用let关键字定义常量,var关键字定义变量 下面的例子可以用来定义用户登录的时候最大的尝试次数: let m

Swift学习——Swift基础详解(二)

上节说了没有营养的变量和常量,这玩意,都差不多,自己稍微看下就好了 Integers    整型 整数就是整数了,没有小数,整数有符号(+,-,0)或者无符号(0,+) Swift提供了8,16,32,64位的有符号和无符号的整数,命名使用C的方式,比如,8位无符号的整型UInt8,32位有符号的整型就是Int32 Integer Bounds    整型范围 可以使用min 和 max获取整数类型的最大值和最小值 let minValue = UInt8.min // minValue is

Swift学习——Swift基础详解(三)

小葵花课堂继续开讲 Numeric Literals    数字文本 数字文本有以下几种写法: A decimal number, with no prefix A binary number, with a 0b prefix An octal number, with a 0o prefix A hexadecimal number, with a 0x prefix 十进制数,无前缀:二进制数,0b前缀:八进制数,0o前缀:十六进制数,0x前缀 论数字17的N种表现形式: let deci

Swift学习——Swift基础详解(八)

Assertions    断言 可选可以让你判断值是否存在,你可以在代码中优雅地处理值缺失的情况.然而,在某些情况下,如果值缺失或者值并不满足特定的条件,你的代码可能并不需要继续执行.这时,你可以在你的代码中触发一个断言(assertion)来结束代码运行并通过调试来找到值缺失的原因. Debugging with Assertions    使用断言进行调试 断言会在运行时判断一个逻辑条件是否为true.从字面意思来说,断言"断言"一个条件是否为真.你可以使用断言来保证在运行其他代