在前面,我们介绍了Swift的一些基本东西,现在我们继续讲讲其他基础的东西:

1. 数值的字面量

十进制数,没有前缀
二进制数,前缀加0b
八进制数,前缀加0o
十六进制数,前缀加0x

例子:

let decimalInteger = 17
let binaryInteger = 0b10001
let octalInteger = 0o21
let hexadecimalInteger = 0x11
println("\(decimalInteger),\(binaryInteger),\(octalInteger),\(hexadecimalInteger)")
// 打印出来的结果: 17,17,17

2.指数

十进制的指数

let a = 1.25e2
let b = 1.25e-2
println("\(a),\(b)")
// 打印出来的结果: 125.0

这些也是十进制

let decimalDouble = 12.1875
let exponentDouble = 1.21875e1
let hexadecimalDouble = 0xC.3p0
println("\(decimalDouble),\(exponentDouble),\(hexadecimalDouble)")
// 打印出来的结果: 12.1875,12.1875,12.1875

十六进制的指数

let a = 0xFp2
let b = 0xFp-2
println("\(a),\(b)")
// 打印出来的结果: 60.0,3.75

3.数值类型的转换

在Swift中的树枝类型转换要注意一些东西,那就是变量可存储的数据范围,比如无符号类型的数值不能存储负数,已经是最大值的类型不能再扩充,这些操作都会引起编译器的报错,比如:

let cannotBeNegative: UInt8 = -1
// 报错: Integer literal overflows when stored into 'UInt8'
let tooBig: Int8 = Int8.max + 1
// 报错: Arithmetic operation '127 + 1'(on type 'Int8')results in an overflow

如果我们要将一个数转换成另一种类型,然后再运算的时候,我们需要这么做:

let twoThousand: UInt16 = 2_000
let one: UInt8 = 1
let twoThousandAndOne = twoThousand + UInt16(one)
println(twoThousandAndOne)
// 打印出来的结果: 2001

我们必须得初始化另一个期望类型,然后在运算的时候把两个数字转成相同的类型再进行运算.

4.整数和浮点数的类型转换

在Swift里转换整数或者浮点数,需要显式声明,比如:

let three = 3
let pointOneFourOneFiveNine = 0.14159
let pi = Double(three) + pointOneFourOneFiveNine
println(pi) // 打印出来的结果: 3.14159

如果我们需要把结果再转换一下,那就另外再显示声明:

let integerPi = Int(pi)
println(integerPi)
// 打印出来的结果: 3

这样子的写法就是把pi转换成整数,转成整数的时候会自动把尾巴去掉,无论你的小数最后一个是多大,它不会根据什么四舍五入进行进制.

5.类型的别名

在Swift中也是有类型别名的,下面让我们来看看:

typealias AudioSample = UInt16

var maxAmplitudeFound = AudioSample.min
println(maxAmplitudeFound)
// 打印出来的结果: 0

他这个的定义和OC中的使用方法原理相似,这里就不多解释.

好了,这次我们就讲到这里,下次我们继续~~

Swift语法基础:9 - Swift的字面量, 类型转换, 类型别名的更多相关文章

  1. ios – Swift3上的“Empty collection literal需要显式类型”错误

    解决方法出现此错误,因为隐式转换被取消,因此您必须告诉编译器显式类型:

  2. ios – 无法将类型为’NSArray’的值分配给'[AnyObject]’类型的值

    在swift中,我有一个School类,它有一个类型为[AnyObject]的学生属性!是不是swift中的数组与目标c中的NSArray兼容?解决方法你的var学生是一个Swift数组,并期望AnyObject类型的对象,但你尝试为它分配一个NSArray.这两个对象的类型不同,不起作用.但是,鉴于NSArray与[AnyObject]兼容,您可以使用简单的类型转换将NSArray转换为Swift数组:当然,更好的方法是留在Swift世界并尽可能地忘记NSArray,方法是让getAllStudents

  3. 一 Swift学习之基础部分

    **一Swift学习之基础部分————–借鉴老码团队翻译组-Tyrion**//1.1常量和变量letsum=0//声明常量,值不可修改varnumber=1//声明变量,值可修改varx=0.0,y=1.0,z=2.0//在一行声明多个常量或变量用逗号隔开//1.2类型标注//声明常量或变量时可以加上类型标注,表示这个常量或变量存储的类型,但是如果你没有添加类型,而是赋了初始值,swift会自己推断类型letnum:Int=0varstr:String?Swift提供了两种有符号浮点数类型:Double

  4. 四 Swift学习之集合类型 (Collection Types)

  5. Swift语法基础:9 - Swift的字面量, 类型转换, 类型别名

    在前面,我们介绍了Swift的一些基本东西,现在我们继续讲讲其他基础的东西:1.数值的字面量十进制数,没有前缀二进制数,前缀加0b八进制数,前缀加0o十六进制数,前缀加0x例子:2.指数十进制的指数这些也是十进制十六进制的指数3.数值类型的转换在Swift中的树枝类型转换要注意一些东西,那就是变量可存储的数据范围,比如无符号类型的数值不能存储负数,已经是最大值的类型不能再扩充,这些操作都会引起编译

  6. Swift语法基础:13 - Swift的字符串字面量, 初始化字符串, 字符串可变性, 字符串是值类型

    在不同情况下,都会对已有字符串值创建新副本,并对该新副本进行传递或赋值。Swift默认字符串拷贝的方式保证了在函数/方法中传递的是字符串的值,其明确您独有该字符串的值,无论它来自哪里。您可以放心您传递的字符串本身不会被更改,除非是你自己更改它。

  7. 老码说编程玩转swift读书笔记1

    而且即使实在32位机上,int的取值范围也从-2147483638到2147483647对大多数情况来说,这也够用了!varanInt:Int=10varaChar:Character="a"//编译时错误,加号运算符不支持左操作数为Int,右操作数为CharactervaranotherChar:Character=anInt+aChar//编译时错误,Character不能转换为IntvaranotherInt:Int=anotherChar其他非类型安全中,常见的变量或常量间的隐世类型转换,在swi

  8. Swift学习之每日一tip (2)词法结构

    首字符之后,标识符允许使用数字和Unicode字符组合。用作可选类型修饰,左侧必须无空白。

  9. Swift学习:6.字符串和字符

    字符串字面量可以包含以下特殊字符:转义字符\0(空字符)、\\(反斜线)、\t、\n(换行符)、\r(回车符)、\"(双引号)、\'(单引号)。Unicode标量,写成\u{n},其中n为任意的一到八位十六进制数。

  10. Swift学习—数据类型

    知识点:指定常量\变量的数据类型Swift严格要求变量在使用之前必须进行初始化最值:可以使用min和max方法获得最值范围:数值超出存储范围Swift会报错类型不同的两个变量不能相加数字格式:可以增加零或者下划线增强可读性类型转换Swift中使用typealias关键字定义类型的别名,跟C中的typedef作用类似示例代码:

随机推荐

  1. Swift UITextField,UITextView,UISegmentedControl,UISwitch

    下面我们通过一个demo来简单的实现下这些控件的功能.首先,我们拖将这几个控件拖到storyboard,并关联上相应的属性和动作.如图:关联上属性和动作后,看看实现的代码:

  2. swift UISlider,UIStepper

    我们用两个label来显示slider和stepper的值.再用张图片来显示改变stepper值的效果.首先,这三个控件需要全局变量声明如下然后,我们对所有的控件做个简单的布局:最后,当slider的值改变时,我们用一个label来显示值的变化,同样,用另一个label来显示stepper值的变化,并改变图片的大小:实现效果如下:

  3. preferredFontForTextStyle字体设置之更改

    即:

  4. Swift没有异常处理,遇到功能性错误怎么办?

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  5. 字典实战和UIKit初探

    ios中数组和字典的应用Applicationschedule类别子项类别名称优先级数据包contactsentertainment接触UIKit学习用Swift调用CocoaTouchimportUIKitletcolors=[]varbackView=UIView(frame:CGRectMake(0.0,0.0,320.0,CGFloat(colors.count*50)))backView

  6. swift语言IOS8开发战记21 Core Data2

    上一话中我们简单地介绍了一些coredata的基本知识,这一话我们通过编程来实现coredata的使用。还记得我们在coredata中定义的那个Model么,上面这段代码会加载这个Model。定义完方法之后,我们对coredata的准备都已经完成了。最后强调一点,coredata并不是数据库,它只是一个框架,协助我们进行数据库操作,它并不关心我们把数据存到哪里。

  7. swift语言IOS8开发战记22 Core Data3

    上一话我们定义了与coredata有关的变量和方法,做足了准备工作,这一话我们来试试能不能成功。首先打开上一话中生成的Info类,在其中引用头文件的地方添加一个@objc,不然后面会报错,我也不知道为什么。

  8. swift实战小程序1天气预报

    在有一定swift基础的情况下,让我们来做一些小程序练练手,今天来试试做一个简单地天气预报。然后在btnpressed方法中依旧增加loadWeather方法.在loadWeather方法中加上信息的显示语句:运行一下看看效果,如图:虽然显示出来了,但是我们的text是可编辑状态的,在storyboard中勾选Editable,再次运行:大功告成,而且现在每次单击按钮,就会重新请求天气情况,大家也来试试吧。

  9. 【iOS学习01】swift ? and !  的学习

    如果不初始化就会报错。

  10. swift语言IOS8开发战记23 Core Data4

    接着我们需要把我们的Rest类变成一个被coredata管理的类,点开Rest类,作如下修改:关键字@NSManaged的作用是与实体中对应的属性通信,BinaryData对应的类型是NSData,CoreData没有布尔属性,只能用0和1来区分。进行如下操作,输入类名:建立好之后因为我们之前写的代码有些地方并不适用于coredata,所以编译器会报错,现在来一一解决。

返回
顶部