Swift基础一(代码)

import Foundation

println("Hello, World!")

var string1 = "Hello BeiJing" //定义一个变量(字符串)
//var string1: String = "Hello, BeiJing" //系统会自动进行类型推断为此表达式
println("string1 = \(string1)")

let string2 = "Hello, Everybody" //let定义一个常量

println("string2 = \(string2)")

string1 = "Hello"

let number1 = 20
//let number1: Int = 20 //在Swift中整形自动推断为Int, 如果系统是32位系统,那么这个整形就是Int32,如果是64位系统,那么就是Int64

let number2: Int8 = 20 //如果我需要一个8位的整形数,那么需要显示的指定位Int8

let number3: Double = 12.0 //在Swift中,浮点型默认是Double

let number4: Float = 28.0 //如果需要Float类型,那么需要显示指定

var number = Double(number2) + number3 //Swift中,不支持隐式转换,如果想让两个不同类型的数据进行运算,那么需要显示的转换其类型: 类型名(常量/变量名)

let 你好 = "你好"
println("你好 = \(你好)")

//元组, 从关系型数据库里引出的概念, 关系型数据库里面的每一条记录都相当于一个元组,元组里面的数据可以是不同类型.<pre name="code" class="objc">var request404Error:(Int, String) = (404, "Request Error Message") //定义一个元组, 相当于(Int, String)类型的元组

println("requestCode = \(request404Error.0),requestErrorMessage = \(request404Error.1)") //可以通过下标来取出元组里面的元素,元组的分解

var request404ErrorA = (errorCode: 404, errorMessage: "Request Error Message") //在创建元组的时候, 可以给元祖里面的元素类型名

println("errorCode = \(request404ErrorA.errorCode), errorMessage = \(request404ErrorA.errorMessage)")

//数组(Swift中数组元素是同一类型才可以从数组中读取,也就是只能存放同一类型的元素)
var names: String[] = ["太一", "嘉儿", "阿和", "阿武"]
var name1 = ["美美", "光子郎"]
println("names = \(names)")

names.append("素娜") //往数组里面添加元素,可以使用append
var name = name1 + names //往数组里面添加一个数组, 可以使用"+"
println("name = \(name)")
println("names = \(names)")

names[0] = "亚古兽" //通过下标修改数组里的元素
println("names = \(names)")

names.removeAtIndex(0) //删除元素
println("names = \(names)")
names.removeLast()
println("names = \(names)")

//let声明的数组为不可变数组, 不能添加和删除元素 但可以替换
let namesA = ["大辅", "一乘寺贤"]
//namesA.removeAtIndex(0)
namesA[0] = "阿助"
println("namesA = \(namesA)")

//var namesB = ["路飞", "索隆", "娜美", 32]
//namesB.append("香吉士"))

字典

//字典 在Swift中 要求所有的key是同一类型 所有的value是同一类型
var person: Dictionary<String, String> = ["name":"路飞", "sex":"男"]
println("person = \(person)")

person["habit"] = "足球"
println("person = \(person)")

//person["key"] = newValue,如果key已经存在,那么进行的是替换操作 如果key不存在,那么添加了一组键值
person["name"] = "索隆"
println("person = \(person)")

person.updateValue("娜美", forKey:"name") //

println("person = \(person)")

let oldValue = person.updateValue("乔巴", forKey:"name") //使用updateValue(value, forKey:key) 进行字典里面元素更新的时候,会返回被替换掉的旧值

println("person = \(person)\n oldValue = \(oldValue)")

let personA = ["name":"罗宾", "sex":"女"]
//personA["name"] = "luobin"

//数组和字典的可变和不可变通过var和let来进行判定,不同的地方是如果数组声明为let, 那么不可以添加和删除元素,但是可以更改.通过let声明的字典,既不可以添加删除,也不可以更改

for name in names{//数组的遍历, for in
    println("name = \(name)")
}

//数组的遍历,并且得到相应元素的下标
for (index, name) in enumerate(names){
    println("index = \(index), name = \(name)")
}

//字典的遍历,得到key和value (字典里打印的东西是无序的)
for (key, value) in person {
    println("key = \(key), value = \(value)")
}
//控制语句

var isNumber:Bool = true
var aNumber = 3 ; var bNumber = 5 // 如果想在一行有多个语句,那么需要用";" 进行分割

//在Swift中, if语句的判断条件只能是Bool类型
if isNumber {
    println("aNumber = \(aNumber)")
}

for var i = 0; i < 10; i++ {
    println("i = \(i)")
}

for j in 0..9 { // ".."表示的是一个区间,包括左边的值,但是不包括右边的值
    println("j = \(j)")
}

for k in 0..9 { //".."既包括左边的值, 又包括右边的值
    println("k = \(k)")
}
//switch
var a = 11
switch a {
case 1:
    println("a = 1")
case 11:
    println("a = 11")
    fallthrough // 强制执行下个case语句
default:
    println("a = other number")
}

//case语句可以是个范围, 并且这个范围是可以交叉的, 但是只执行第一个满足case条件的语句
switch a {
case 1..20 where a == 12: //可以进行双重判定, 使用 where a == 12
    println("这是一个个位数")
case 11..100:
    println("这是一个十位数")
default:
    println("其他数字")
}

var point = (4, 0)

switch point {
case(0, 0):
    println("原点")
case(let x, 0): //使用(let x, 0) 可以取出元组里面对应位置的元素
    println("X轴, x = \(x)")
case(0, _): // "_"表示忽略元组里面相应位置的元素
    println("Y轴")
default:
    println("象限内")
}

Swift基础一(代码)

时间: 2024-10-08 10:55:13

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基础 - - 高德地图实践(一)

高德地图开发需要自己到官网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基础详解(八)

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

Swift基础 (一)

1:hello world import Foundation println("hello world") 就这样,一句代码就可以打印出 hello world 不需要在末尾加";" 这里如果你加了";"同样可以运行的.感觉好像是为了避免麻烦,不再像c语言那样,每句代码末尾都加";",说来也是,从哲学来说,每句代码都加";"约等于不加";" ,反而每次都写,麻烦! 2:代码注释,和c语

Oracle实践--PL/SQL基础之代码块

PL/SQL基础入门之代码块 PL/SQL:过程语言(Procedure  Language)和结构化语言(Structured Query Language)结合而成的编程语言,是对SQL的扩展,支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制语句,可创建存储过程,程序包和触发器等,给sql语句的执行添加程序逻辑,与Oracle服务器和Oracle工具紧密集成,具有可移植性,灵活性和安全性. 优点: 1.       支持SQL,可以使用:DML,DCL,游标控制和SQL运算符 2