您的位置:首页 > 移动开发 > Swift

Swift 基础学习(语法)

2016-03-01 17:51 267 查看

Playground的介绍

作为开发人员我们有必要了解一下所使用的工具,这会对我们的开发有很大的帮助。

Playground是Xcoude 6中新引人的一种文档类型,在该文档类型的文件中封装了一些有用的东西,其中包括全部的Swift代码。Swift代码会在Playground环境中实时运行,并且只要我们在Playground中编辑Swift代码,就会马上自动显示结果。Swift文档也能包含一个文件夹,里面可以内嵌那些供代码使用的资源。另外,我们还可以在Playground文件中引用那些外部的、存储在系统中的可利用资源。最后,Playground还可以包含一个时间轴(Timeline),时间轴可以在边栏中通过可视化方式显示结果,这个特性对开发者来说非常实用。

因为是初级学习,所以使用的是Playground,用起来很方便实用。

Playground的使用

1.打开Xcode,选则Get started with a playground;



我们可以边输入代码,一边看到结果.

基本练习

//: Playground - noun: a place where people can play

import UIKit

//1.输出
var str = "Hello, playground"
//print("Hello, world")

//2.常量与变量
var a = "我是变量"
//常量一旦初始化后不能在对其进行修改
let b = "我是常量"

//3.指明类型
let letInteger :int_fast32_t = 70
let letDouble :Double = 70.0
let letString :String = "hello, swift"

//4.转换字符串: String()或\()
let myString = "myInt is"
let myInt = 90
let myString2 = myString + String(myInt)
let myString3 = "myInt is \(myInt)"

//5.数组创建和调用
var array = ["one","two","three","four"]
var getTwo = array[1]

//6.数据字典创建与调用
var dictionary = ["oneName":"I am one value","twoName":"I am two value"]
var getTwoValue = dictionary["oneName"]

//7.for语句
for item in array
{
var i = item;
}

//8.函数
func getUserName(loginName:String)->String
{
return "Lily";
}

//9.枚举
enum Week {
case 星期一
case 星期二
case 星期三
case 星期四
case 星期五
case 星期六
case 星期天
}

//10.Switch语句
var today = "星期一"
switch today
{
case "星期一":
print("今天是星期一");
case "星期二":
print("今天星期二");
default:
print("不知道今天星期几");
}

//11.类
class Person :NSObject
{
var userName:String;
var userAge = 0;
override init()
{
userName="";
}
}

/*
12.基本数据类型:整数类型,小数类型
*/
let interger: Int = 88
var floatValue: Double = 3.5
/*
两种基本类型不可以进行隐式转换
*/
var intVar: Int = 78
//var doubleVar: Double = intVar

/*
类型推断和类型安全
*/
let stringValue = "Hello"

/*
13.类型转化
*/
//浮点数转为整数
intVar = Int(floatValue)
print(intVar)
//整数转为浮点数
floatValue = Double(intVar)
print(floatValue)

/*
14.元组: (30, "hello")
*/
let student: (String, Int, Double, Int) = ("zhangsan",23,89.5, 1234)
print(student.0)
print(student.1)
print(student.2)
let (name, age, score, stuNumber) = student
print(name)
print(age)
print(score)
print(stuNumber)

let student1 = (name:"lisi", age:25)
print(student1.name)
print(student1.age)

/*
15.可选值: optionals,两种状态: 有值, 没有值(nil)
数据类型后面为?
*/
//有值
var optValue: Int? = 90
//没有值
var optValue1: Int? = nil
//等价于 var optValue1: Int?
if (optValue != nil) {
print(optValue)
}
//!表示对可选值的一个强制解析, 可选值!(如果解析错误,会产生运行错误)
////无值时这种写法编译不会出现错误,运行时就会报错
//var svalue: Int = optValue1!
//print(svalue)

//可选绑定(推荐该写法),比起强制解析(上面的方法)更加安全
if var svalue1 = optValue1 {
print(svalue1)
}

/*
16.隐式解析可选类型,两种状态. 有值, 没有值(nil)
数据类型后面为!
*/
var impOptValue: Int! = 9
if (impOptValue != nil) {
print(impOptValue)
}
if let ivalue = impOptValue {
print(ivalue)
}
var ivalue: Int = impOptValue

//var impOptValue1: Int!
////impOptValue1无值时也会引起运行错误
//var ivalue1: Int = impOptValue1

/*
17.数据 + 数据的处理
字符信息 + 字符信息的处理
char a = 'a'
"hello"
const char * p = "hello"
char array[] = "hello"
*/
//定义字符
let c:Character
//c = "a"
c = "张"
//字符串,允许尾0的出现与C语言中的不同
var chun:String = "chuner\0春儿"
print(chun)
//字符串拼接
let str1 = "hello"
let str2 = "swift"
let str3 = str1 + str2
print(str3)
//字符串的构造
var index = 4
let message = "http://www.mobiletrain.org/pic/\(index).png"
print(message)
var urlHead = "http://www.mobiletrain.org"
let message1 = "\(urlHead)/pic/\(index).png"
print(message1)

/*
字符串的操作
*/
let zStr = "zhou"
//判断是否相等,相等输出该字符串
if zStr == "zhou" {
print(zStr)
}
if zStr > "abcd" {
print(zStr)
}
if zStr < "dergd" {
print(zStr)
}

/*
判断某个字符串是否某字符串
*/
let wStr = "apple"
//判断前缀(结果不输出)
if  wStr.hasPrefix("le") {
print(wStr)
}
//判断后缀(结果输出apple)
if  wStr.hasSuffix("le") {
print(wStr)
}

/*
将小写改为大写
*/
let cStr = "ADgggeh"
//转成大写
print(cStr.uppercaseString)
//转成小写
print(cStr.lowercaseString)

let zwStr = "244"
//将字符串转成int类型
print((zwStr as NSString).intValue)
//转成double类型
print((zwStr as NSString).doubleValue)
//转成float类型
print((zwStr as NSString).floatValue)


效果如下

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: