swift语法基础

Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C*共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。Swift是一款易学易用的编程语言,而且它还是第一套具有与脚本语言同样的表现力和趣味性的系统编程语言。Swift的设计以安全为出发点,以避免各种常见的编程错误类别,下面我以代码的形式向大家介绍一下swift的基础语法

“//

//  main.swift

//  Swift语法

//

//  Created by lanou on 16/7/21.

//  Copyright © 2016年 Huangyu. All rights reserved.

//

import Foundation

print("Hello, World!")

//Int Float

let a:Int = 12

// let var

let str = "hello"

//str.characters.count

//str.lengthOfBytesUsingEncoding(NSUTF8StringEncoding)

//大小写转换

//str.uppercaseString

//str.lowercaseString

//==

//"123\(str)4555"

let str2 = String(format: "%02d:%02d", 1,2)

let str3 = String(format: "%02d:%02d", arguments: [1,2])

print(str2)

print(str3)

//str2.substringToIndex(<#T##index: Index##Index#>)

//字符串的其他操作全部转化为NSString再去操作

//转换

let str4:NSString = str2 as NSString

//数组 Array

let array1 = ["A", "2", "3", "4"]

//initWith/init在swift里面转化成()

let array2 = [String]()

//元素个数.count

//数组遍历 for-in (明确的指出数组的类型)

for temp in array1 as [String]{

print(temp.characters.count)

}

//元组遍历

for (index, value) in array1.enumerate()

{

print("index = \(index),value = \(value)")

}

//可变数组

var mutableArray = [String]()

mutableArray.append("hello")

mutableArray.append("world")

//mutableArray.append(23)

print(mutableArray)

mutableArray.removeFirst(1)

print(mutableArray)

mutableArray.removeAll()

print(mutableArray)

//字典 Dictionary

let dict = ["key1":"value1", "key2":"value2", "key3":"value3"]

print(dict)

//通过Key值访问value值

print(dict["key1"])

//for - in

for (tempkey, tempvalue) in dict.enumerate()

{

print("key = \(tempkey), value = \(tempkey)")

}

//可变字典

var dict3 = ["key":"value"]

//合并

for (tempkey, tempvalue) in dict

{

// 如果key存在的则是一个更新的键值对操作, 否则就是一个增加键值对操作

dict3[tempkey] = tempvalue

}

print(dict3)

//如果一个值可能为nil, 那么这个值就是可选类型, 用?标识

//Optional包围的就是一个可选类型

//可选类型不能直接使用, 必须强制解包  !制解包,对nil强制解包会造成崩溃

var  a1:String?

a1 = "12345"

print(a1!.characters.count)

//(a2 ?? "234")对可选类型进行判断, 如果可选类型值为nil, 则给它一个默认值

var  a2:String?

a2 = "12345"

print(a2 ?? "234".characters.count)

//if 条件语句()可以省略 {}不能省略

//if没有非零即真的概念, 只有true false的两种概念

let tempvalue = 10;

if tempvalue > 5{

print("tempvalue > 5")

}

//可选类型的条件分支

let str5:String? = "hello"

//(1)if-let是对可选类型的判断, 如果可选类型为nil, 则不执行代码块, 如果不为空则用tempStr来接收此刻这个可选类型的解包后的值

if let tempStr = str5{

print(tempStr)

}

//(2)if-let-where 跟 if-let相似, where是对前面定义的这个局部变量再做一层判断

if let tempStr = str5 where tempStr.characters.count > 2{

print("tempStr.length = \(tempStr.characters.count)")

}

//guard - let -else()

//如果可选类型str为nil, 则执行code代码块, 最后一定要return, 如果不为nil则强制解包后的值赋值给tempStr,这样在 {}外面就可以使用tempStr

/*

guard let tempStr = str else {

code

return

}

tempStr...

*/

/*

//switch 不局限判断整型, 可以是浮点型,也可以是字符串。。。switch后面的小挂号可以省略, 大号不能省略 case后面至少要执行语句!!并且case后面的大号可以省略, break可以不写, 不会造成贯穿 default一定要写, 并且只能写在后面

let f = 3.2

switch f {

case 3.0:

print("===3.0")

case 3.1:

print("===3.1")

case 3.2:

print("3.2")

default:

print("unknow")

}

*/

for i in 0 ..< 5 {//0..<5------[0,5)  0.....5----[0,5]

print("i = \(i)")

}

//枚举(枚举值可以关联浮点, 字符串, 没有默认的关联值)

//关联如果是Int, 会默认的递增上去, 如果不是Int, 必须每个枚举值都关联上对应的值

enum Month:Float{

case January = 11.2

case February = 11.3

case March = 13.2

case April = 13.6

}

//如果明确指出一个变量/常量是属于哪种枚举类型的话, 可以直接.枚举值赋值, 否则就 枚举类型.枚举值

let month:Month = .January

var month1 = Month.January

month1 = .February

switch month{

case.January:

print("hashValue = \(month.hashValue), rawValue = \(month.rawValue)")

case.February:

print(month)

case.March:

print(month)

case.April:

print(month)

}”

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,311评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,339评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,671评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,252评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,253评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,031评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,340评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,973评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,466评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,937评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,039评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,701评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,254评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,259评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,497评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,786评论 2 345

推荐阅读更多精彩内容