//
// ViewController.swift
// 003基本语法
//
// Created by Ninesday on 16/6/20.
// Copyright © 2016年 Ninesday. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
// if变化 没有了() 必须写上{}
//没有了非nil即真 只有了false和true
demo0()
demo2()
demo3()
demo4()
demo5()
switchdemo()
demo6()
demo7()
demo8()
demo9()
demo10()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func demo0() {
let x = 2
if x > 3 {
print("小了")
}else {
print("打了")
}
}
// func demo1() {
// let a = 10
// if a > 5 print("fsd") ? print("ewqr")
// }
func demo2() {
let name:String? = "huzuyu"
let age: Int? = 20
if name != nil {
print("woai" + name!)
print("woai" + name! + String(age!))
}
if let name_2 = name,age_2 = age {
print("HI" + name_2 + "(age_2)")
}
}
func demo3() {
let a = 2
a > 5 ? print("哈哈") : print("呵呵")
}
// if let 的作用 对一个变量设置数值 进入分支后保证一定有值 注意多个变量的if let的使用,不用 &&和|| 这样的话就省去了你使用那个 !
func demo4() {
let oName :String? = "A excellent man"
let oAge :Int? = 24
if oName != nil && oAge != nil {
//如何把数值转化为字符串
print("I will become" + oName! + "------" + String(oAge!))
}
if let name = oName, age = oAge {
print("Hi" + "I will coming" + name + "------" + String(age))
}
}
//guard和if let是一种相反的指令
//guard 可以让嵌套可以少一层 少做了一层判断 而if let 的处理都是把代码放在内部处理的
func demo5() {
let oName : String? = "A good Boy"
let oAge : Int? = 24
guard let name = oName else {
print("name的值为nil")
return
}
guard let age = oAge else {
print("age == nil")
return
}
print("huzyu (name)(age)")
}
//控制流
//OC中switch OC中的switch(number) 只能为证整数
//还有 对于OC中一个特俗的问题的就你必须要给他加上一个{}对于超过2行的和定义了变量的
//避免case的穿透
//swift中 可以不需要break 和 不要局限在Int分支可以对任意的代码
//还有一个可以不用case穿透
// 必须涵盖所有的条件,每一个case必须含有含有一个语句 不能空
func switchdemo() {
let number = "8"
switch number {
case "10","11": print("优秀")
case "9": print("还不错")
case "8" :
let name = "huzuyu"
print("(name)")
default :
print("差")
}
}
//可选项的替换 ??可以判断的Var 变是否为nil
//注意一个问题 ??会让之后的替换掉之前的变量 如果没有给这个变量加上括号的话在有值的时候就不会用后面替换
//??最开始的映入就是去了省去!
//??的优先级低
// var 的可选项默认值为nil let的可选项默认没有初始值 需要初始化
func demo6() {
var oName: String?//= "yangyan"
print((oName ?? "") + "也好")
print("------------")
print(oName ?? "" + "也好")
}
//字符串 字符串的拼接 (变量名) 方式
//swift里面的string 为结构体 OC中为继承NSOBJect的对象
func demo7() {
let name = "zhangshan"
let age = 19
let center = view.center
print("(name) (age) (center)")
}
//字符串的遍历
func demo8() {
let name = "hello word"
for c in name.characters {
print(c)
}
}
func demo9() {
let string = "你好世界"
print(string.characters.count)
print(string.lengthOfBytesUsingEncoding(NSUTF8StringEncoding))
}
//时间的打印
func demo10() {
let h = 10
let m = 8
let s = 8
print("(h):(m):(s)")
//怎么专业的表达 格式化字符串
let dataString = String(format: "%02d:%02d:%02d", arguments: [h,m,s])
print(dataString)
let dataString2 = String(format: "%02d:%02d:%02d", h,m,s)
print(dataString2)
}
}