swift 基础-1

一、常量与变量

var testVariable = 42
        testVariable = 50
        println(testVariable)
       
        let testLet = 30
        println("Hello world!")

二、命名规则

let doubleNum:Double = 2.1
        var π = 3.14
        var 任海瑞 = "iOS"
        let ?? = 123
        let cat = "??"
        println(??)
        println(cat)
        let int1 = 17
        let int2 = 0b0001
        let int3 = 0o21
        let int4 = 0x11
       
        let minValue = UInt8.min
        let maxValue = UInt8.max
       
        println(minValue,maxValue)

三、类型别名 typealias

typealias NSInteger = Int
        var value:NSInteger = 45
        value = 12
        println(value)
       
        var enable:Bool = true
        var tigerIsAnimal = false
        let label = "The width is "
        let width = 56

四、Playground

五、Array

// 不支持隐式类型转换
        // 相同类型相加
        var widthLabel = label + String(width)
        widthLabel += "!"
        println(widthLabel)
        let apple = 3
        let oranges = 5
        let applesSummary = "I have \(apple + oranges) apples"

println(applesSummary)

var shoppingList = ["芒果","橘子","葡萄"]
        println(shoppingList.capacity)
        // 增加元素
        shoppingList.append("香蕉")
        shoppingList.insert("苹果", atIndex: 0)
        //shoppingList += "柚子"
       
        shoppingList += ["西瓜","木瓜","杨桃"]
        println(shoppingList)
        println(shoppingList.count)
        println(shoppingList.capacity)
       
        shoppingList[0] = "哈密瓜"
        println(shoppingList)
       
        shoppingList[4...7] = ["Bananas","Apples"]  // 把4.5.6.7下标元素换成 
        // 除了能改变元素以外,还会改变元素个数
       
        println(shoppingList)
        // 删除
        shoppingList.removeLast()
        println(shoppingList)
        shoppingList.removeAtIndex(4)
       
        // 数据的遍历
        for item in shoppingList
        {
            println(item)
        }
        // 遍历2
        for (index,value)in enumerate(shoppingList)
        {
            println("Item \(index+1):\(value)")
        }
        var threeDoubles = [Double](count: 3, repeatedValue: 0.0)
        var anotherDoubles = Array(count: 3, repeatedValue: 2.5)
        println(threeDoubles)
        println(anotherDoubles)
        var sixDoubles = threeDoubles + anotherDoubles

println(sixDoubles)

六、Dictionary

let emptyDictionary = [:]

let emptyDic = Dictionary<String,Float>()

var airports = ["TYO":"Tokyo","DUB":"Dublin"]

println(airports)

// 添加和修改字典

airports["TYO"] = "Tokyo International"

println(airports)

// 假如没有找到这个key  就要添加一对

airports["LHR"] = "London"

println(airports)

// delete

airports["LHR"] = nil

println(airports)

//        airports.removeValueForKey("TYO")

println("airports count is " + String(airports.count))

println("airports count is \(airports.count)")

// 遍历

for (key,value) in airports

{

println("\(key):\(value)")

}

// 遍历所有的key

for key in airports.keys

{

println(key)

}

let allKeys = airports.keys.array

println(allKeys)

七、Tuple

// Tuple元组 :任意数据类型的容器,常作为函数返回值

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

let http404Error = (404,"Not Found")

let (statusCode,statusMessage) = http404Error

// 下划线— 忽略不需要的元素

let (justTheStatusCode,_) = http404Error

// 直接访问

println("just is \(justTheStatusCode)")

// 类似于字典  用key

println("status is \(x)")

// 用序号index

println("status code is \(http404Error.0)")

let http200Status = (statusCode:200,desc:"OK")

println("http200: \(http200Status.statusCode)")

八、optional

// Optional 要么不存在 要么等于X

var serverResponseCode :Int? = 404

let possibleNumber = "123"

let converNumber: Int? = possibleNumber.toInt()

// 假如是123可以转换成int,则存在,假如是Hello 就没办法转换成int  也就不存在了

println(converNumber?.description)

// nil 不能用与 非可选类型

// 假设代码中有变量或常量 可能不存在  ,就要声明成恰当的可选类型。如果定义的可选的类型对象不提供默认值,则该对象自动设为nil

var strValue : String?

var strTest : String? = "hello"

let hashValue = strValue?.hashValue

println(hashValue)

println(strTest?.hashValue)

/*

总结 ?使用场景

1、声明optional变量

2、optional值操作中,判断是否操作。

*/

声明UI 代码的时候会用

var window: UIWindow?

九、解包 !

self.window = UIWindow(frame: UIScreen.mainScreen().bounds)

self.window!.backgroundColor = UIColor.greenColor()

var rootViewController = RootViewController()

var rootNavigationController = UINavigationController(rootViewController: rootViewController)

self.window!.rootViewController = rootNavigationController

let possibleString: String? = "an optional string"

println(possibleString!)// 解包,确定一定存在值。

let possibleString:String? = "An optional string"

let stringVale = possibleString!.hashValue

// 这种方法叫选择绑定

if let sValue = possibleString

{

let stringValue = sValue.hashValue

}

十、隐式解包的可选类型

代码很多的话,可选类型 每次都要写感叹号 ! 不方便

定义的时候  直接把问号改成感叹号

隐式解包的可选类型:自动解包的可选类型,用在:定义常量变量,定义完成后一定会存在的情况  主要是用在类的初始化过程中。

let assumedString: String! = "an test string"

println(assumedString)

println(assumedString.hashValue)

总结!使用场景

1、强制对 可选类型进行解包

2、声明 隐士解包的可选类型  类的属性

时间: 2024-08-08 01:12:03

swift 基础-1的相关文章

从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.从字面意思来说,断言"断言"一个条件是否为真.你可以使用断言来保证在运行其他代