Swift3.0 学习-01

swift初识
//
//  main.swift
//  Swift-1
//
//  Created by 广 on 16/12/12.
//  Copyright © 2016年 . All rights reserved.
//

//swift 在写法上比较像脚本语言, (js),但是他是一门编译型语言

//包含的头文件
import Foundation
//输出语句
print("Hello, World!")
/*
//1.常量和变量
常量:一个不可再次更改的对象
变量:可以再次更改的对象
*/
//2.声明常量和变量
//常量的声明: let
let a=1;    //可加可不加分号
//变量的声明: var
var b=1
b = 10

//3.类型的标注
//整型
var c : Int = 3
//双精度
var d : Double = 9.888
//字符类型
var e : Character = "a"
//字符串类型
var f : String = "abcdef"
//以下 默认是字符串
var g = "r"
//不管是字符还是字符串 全部使用双引号

//4.常量和变量的命名
//不能以数字开头,不能使用特殊符号,不能使用关键字
let 中国 = 5
let 🐱 = 7
let eee = 2

//5.输出常量和变量
print(🐱,中国, eee)
print("中国是:\(中国),🐱是:\(🐱)")

//6.注释
//和 OC 一样 单行注释//  多行注释/**/

//7.分号
//swift 中,当一行上只有一条代码时,分号写或不写都可以
//当一行上有多条代码是,分号必须写
var i = 4;   var h = 9
//8.整数及浮点数
let ia : Int64 = 10
let ib : Float32 = 6.78
let ic : Double = 9.234211

//9.类型安全及类型推断
//swift 中会自动判断数据类型 , 不会将一个错误的类型传给我们使用
var l = 3  //默认整型
var pi = 3.14159267   //默认Double
var q = "s" //默认字符串

let ss = Double(l)*3.15

//10.数据类型转换
//整数与浮点数转换
var w = Double(l)   //将类型写在前面 将想要转换的对象用小括号括起来
let sa = w*3.14
var sb = Int(pi)
//字符串与整数转换:要求做到有意义的转换
print("-----------------")
let str1 = Int("10")    //有意义
print(str1)
let str2 = Int("asdf")  //无意义
print(str2)

//11.类型别名
typealias char = Character
var ch :Character = "s"
var ch1 : char = "s"

//12.布尔值 Bool   C 中 bool   OC 中 BOOL
var bool : Bool = false
var bool1 : Bool = true

//13.元组
//将多个元素组合到一起称为元祖 元组里面的数据类型可以不同(元组里的元素个数最好不要大于7)
//方式一:声明一个元组
let yuanzu = (404,"NotFound",3.242)
//获取元组的元素
print(yuanzu)
print(yuanzu.0)
print(yuanzu.2)
//方式二:
let (int,string) = (23,"hello")
print(int)
print(string)

//14.可选类型
//在声明时将?号放到类型的后面 将对象设置为可选类型:如果可选类型赋予初始值,对象使用初始值;如果没有赋予初始值,则系统会默认为 nil
var optional : Int?     //不加?下等于nil是报错的  var k : Int=nil
var optional1 : Int? = 1000
print(optional)
print(optional1)

//15.nil : 当一个可选类型我们没有赋予初始值时,系统默认这个对象为 nil

//16.强制解析 : 将一个可选类型的对象变为一般类型对象,以供我们使用
//              将取值时,将!放到对象的后面
print(optional1!)

//17、可选绑定 :判断 当可选类型有值时,条件成立  如果可选类型为nil,条件不成立

//let 一个名称 = 之前的某一个对象(可选类型)
if let x=optional{
    print(x)
}else{
    print("空")
}
//后期做数据解析的时候常用到

//18、隐式解析可选类型
//将一个可选类型的对象变为一个可以进行自动解析的可选类型 : 其实就是将!声明时放到类型的后面,而不是在取值时放到对象的后面 
var int12 : Int! = 77;  //必须给初始值 必须是 int 型
print(int12)
//加?说明有可能出现 nil 
//加!肯定不会出现 nil 的情况



//19、使用断言进行调试   assert

//当条件成立代码继续向下执行 不影响整体的工程  
//当条件不成立运行时会崩溃到这里 
//意义:断言只是做辅助调试使用  没有实际意义
var int20 : Int = 29
assert(int20 < 100)
print("sdfasdf")

var int22 : Int = 29
//assert(int20 > 100)  //当这个条件不成立时,程序不会继续向下执行
//print("sdfasdf")


//////////////////////////////20、基本运算符//////////////////////
//1.赋值运算符   =
//2.算术运算符   + - * / %
    //swift中取于运算可以对小数取余的
let yushu = 5.5%2.5
print(yushu)
//3.组合赋值运算符 += -+ /= *= 
    //swift 中把++ -- 去除了
var ii = 1
ii+=1

//4.比较运算符  < > <= >= == !=
//5.三目运算符  条件?答案1?答案2

//6.空合运算符  可选对象一 ?? 可选对象二
//当可选对象1为 nil 时,选择可选对象二使用,如果可选对象1为有值时,使用可选对象一
var kong1 : Int? = 200
var kong2 : Int? = 300
var kong3 = kong1 ?? kong2
print(kong3)


//7.区间运算符   ...
//1...5     //1,2,3,4,5

//8.半开区间运算符  ..<

//1..<5       //1,2,3,4

//9.逻辑运算符   && ||  !




/////////////////////////21、字符串///////////////////////////
//1.字符串字面量
let str3 = "string"

//2.字符串初始化空字符串
//2中方式声明空字符串
let str4 : String = ""
let str4_1 :String = String()

//3.判断是否字符串为空
print(str3.isEmpty)
print(str4.isEmpty)

//4.字符串的可变性
let str5 = "aaa"        //不可变
var str5_1 = "bbb"      //可变

//5.字符串的拼接
//str5 += "1" 不可变的+不可拼接
str5_1 += "tr"
print(str5_1)

var str6 = "uu"
var str6_1 = "ii"
var str6_2 = str5 + str5_1
print(str6_2)

//6.字符串中字符遍历
var str7 = "chaindegirlisbeautgful"
for c1 in str7.characters{
print(c1)
}

//7.字符数据类型
var chh1: Character = "g"

//8.字符串插值
let str8 = "11111\(str7)000000"
print(str8)


//9.计算字符数量
print(str7.characters.count)

//10.字符串索引
var str9 = "string"
//获取第一个索引
print(str9.startIndex)
//获取最后一个字符 会多一个字符 \n
print(str9.endIndex)
//获取第二个索引
print(str9.startIndex.successor())
//获取后数第二个索引
print(str9.endIndex.predecessor())
//获取任意一个索引
print(str9.startIndex.advancedBy(3))
print(str9.endIndex.advancedBy(-4))

//获取 s
print(str9[str9.startIndex])
//获取 i
print(str9[str9.startIndex.advancedBy(3)])

//11.indices使用  index
//将字符所有的下标获取到
for i in str9.characters.indices{
    print(i)
    print(str9[i])
}

//12.字符串插入
str9.insert("0", atIndex: str9.startIndex.advancedBy(3))
print(str9)

//13.字符串删除
//单个符号的删除
str9.removeAtIndex(str9.startIndex.advancedBy(4))
print(str9)
//多个符号(某个范围)的删除
let range = str9.endIndex.advancedBy(-3)..<str9.endIndex
str9.removeRange(range)
print(str9)

//14.字符串比较
let a10 = "abc"
let a11 = "ab"
//比较字符串是否相等 == < >
if a10 > a11{
print("相等")
}else{
print("不相等")
}


//15.前缀后缀
//前缀
print(a10.hasPrefix("ac"))
//后缀
print(a10.hasSuffix("bc"))



是不是很无聊 淡定 刚开始。。。。。。

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

推荐阅读更多精彩内容

  • 周末,心血来潮,动手给老妈做了一碗海鲜面。第一次做,没有经验,就从食谱上学着烧,感觉很简单,卖相也不错,老妈也吃...
    孤寡老阿姨阅读 138评论 0 2
  • 看到很多朋友不会注册以及使用iVeryOne,这里就简要总结一下,iVeryOne使用教程。 iVeryOne的介...
    iveryone演示阅读 408评论 0 0
  • 早上老婆给我打电话说,昨晚小孙女半夜有点发烧,她一夜都没睡好。听着她吵哑的声音,不免有些心痛。 孙女从一岁多就让老...
    人生不弃阅读 2,561评论 52 86
  • Q:有没有哪些时刻让你想立刻结束单身? A:现代都市很容易让人寂寞,并不是因为孤单——而是那种,你很想分享什么却四...
    飘雨桐V阅读 324评论 0 0
  • 其实每个人都有自己的人生轨迹,或长或短,或深或浅,我们都在努力,失败,迷失,彷徨的路上学习中,我很喜欢心理学...
    而安的碎碎念阅读 180评论 0 1