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

import Cocoa

var str = "Hello, playground"

str+=",Yes I'm Good";

println("hello swift")

var myvar=

myvar=
let myConstant=
var a:Double= let label="this width is"
let width=
let widthlabel=label+String(width) "I have \(width) apples."
"I have \(String(width)+String(width)) apples"
var shoppingList=["C","B","D","E"]
shoppingList[]="A"
shoppingList
var dict=["A":"yes","B":"no"]
dict["A"]
dict["C"]="Cancel"
dict
var emptyArray=String[]()
emptyArray.append("A")
emptyArray.append("C")
emptyArray var emptyDict=Dictionary<String,Float>()
emptyDict.values
emptyDict=["A":,"B":,"C":] let individualSocres=[,,,,,]
var teamScore=
for score in individualSocres{
if(score>){
teamScore+=
}
else{
teamScore+=
}
}
teamScore
var optional:String?="Hello"
optional=nil
var t="H"
if optional==nil {
t="hello \(optional)"
}else{
t="XX"
} let vegetable="1cecery"
switch vegetable{ //Case 用法
case let x where x.hasSuffix("cery"):
let v="Is it a spicy \(x)" case "cecery":
let v="add some";
case "cecery","":
let v="tttt"
default:
let v="tastes good"
} let interestingNumbers = [
"Prime": [, , , , , ],
"Fibonacci": [, , , , , ],
"Square": [, , , , ],
]
var largest =
for (kind, numbers) in interestingNumbers {
for number in numbers {
if number > largest {
largest = number
}
}
}
largest var n=
while n<{
n=n*
} var firstForLoop=
for i in ..{
firstForLoop+=i
} //多返回值参数
func greet(name:String,day:String)->(String,Double){
return ("hello \(name),today is \(day)",99.0)
} greet("jack","2014-06-09") //数组参数
func sumOf(numbers:Int...)->Int{
var sum=;
for num in numbers{
sum+=num
}
return sum
} sumOf()
sumOf(,,) //嵌套函数
func returnFifteen()->Int{
var y=;
func add(){
y+=;
}
//调用了才执行
add()
return y;
} returnFifteen(); //函数可以作为另一个函数的返回值
func makIncrementer() -> (Int->Int){
func addOne(number:Int)->Int{
return +number;
}
return addOne;
} var increment=makIncrementer();
increment() func hasAnyMatches(list: Int[], condition: Int -> Bool) -> Bool {
for item in list {
if condition(item) {
return true
}
}
return false
}
func lessThanTen(number: Int) -> Bool {
return number <
}
var numbers = [, , , ]
hasAnyMatches(numbers, lessThanTen) //类定义
class Animals{
var name="";
//构造函数
init(name:String){
self.name=name;
}
//方法
func WhatsName()->String{
return "my name is \(name)!";
}
}
//注意构造函数的调用方式
var cat=Animals(name: "dog");
//cat.name="cat";
cat.WhatsName(); //类的继承
class Pig:Animals{
var age:Int{
//在设置之前可以执行某段代码,之后执行用didSet
willSet{
println("aaaa");
}
}; //Getter And Setter
var Age:Int{
get{
return age;
}
set{
age=newValue;
}
} init(age:Int){
self.age=age;
super.init(name:"Pig");
} func HowOld()->String{
return "pig is \(age) years old";
}
//重写
override func WhatsName()->String{
return "pig is a clever animal!";
} } let LittlePig=Pig(age:);
LittlePig.HowOld();
LittlePig.WhatsName();
LittlePig.age;
LittlePig.age=;
LittlePig.Age=; class Counter {
var count: Int =
//方法参数名,可以在为方法体内部使用单独定义一个别名,例如times
func incrementBy(amount a: Int, numberOfTimes times: Int) {
count += a * times
}
}
var counter = Counter()
counter.incrementBy(amount:, numberOfTimes: ) //?之前如果为nil,则之后的会被忽略,否则执行
var os:String;//?="hello jack";
var ai:String?="BBBBB" //枚举
enum Rank: Int {
case Ace = ,Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten,Jack, Queen, King
func simpleDescription() -> String {
switch self {
case .Ace:
return "ace"
case .Jack:
return "jack"
case .Queen:
return "queen"
case .King:
return "king"
default:
return String(self.toRaw())
}
}
}
let ace = Rank.Ace
let aceRawValue = ace.toRaw()
ace.simpleDescription();
//struct结构体,值类型,类为引用类型
enum ServerResponse {
case Result(String, String)
case Error(String)
} let success = ServerResponse.Result("36:00 am", "8:09 pm")
let failure = ServerResponse.Error("Out of cheese.") switch success {
case let .Result(sunrise, sunset):
let serverResponse = "Sunrise is at \(sunrise) and sunset is at \(sunset)."
case let .Error(error):
let serverResponse = "Failure... \(error)"
} //接口和扩展
protocol IUser{
var simpleDesc:String{get}
mutating func addJust()
} class SimpleClass:IUser{
var simpleDesc:String="Very well";
func addJust(){
simpleDesc+=" Now implement";
}
} var test=SimpleClass();
test.addJust()
test.simpleDesc; //接口是可以用来扩展类型的功能的
extension String: IUser {
var simpleDesc: String {
return "The number \(self)";
}
mutating func addJust() {
self += "S";
}
}
"OK".simpleDesc
let tx:IUser = test;
tx.simpleDesc //范型
func repeat<T>(item: T, times: Int) -> T[] {
var result = T[]()
for i in ..times {
result += item
}
return result
}
repeat("knock", ) func anyCommonElements <T, U where T: Sequence, U: Sequence, T.GeneratorType.Element: Equatable, T.GeneratorType.Element == U.GeneratorType.Element> (lhs: T, rhs: U) -> Bool {
for lhsItem in lhs {
for rhsItem in rhs {
if lhsItem == rhsItem {
return true
}
}
}
return false
} anyCommonElements([, , ], [,])

IOS Swift 训练的更多相关文章

  1. iOS swift的xcworkspace多项目管理(架构思想)

    iOS  swift的xcworkspace多项目管理(架构思想) 技术说明: 今天在这里分享 swift下的 xcworkspace多项目管理(架构思想),能为我们在开发中带来哪些便捷?能为我们对整 ...

  2. iOS Swift 模块练习/swift基础学习

    SWIFT项目练习     SWIFT项目练习2 iOS Swift基础知识代码 推荐:Swift学习使用知识代码软件 0.swift中的宏定义(使用方法代替宏) 一.视图  +控件 1.UIImag ...

  3. ios swift 实现饼状图进度条,swift环形进度条

    ios swift 实现饼状图进度条 // // ProgressControl.swift // L02MyProgressControl // // Created by plter on 7/2 ...

  4. Building gRPC Client iOS Swift Note Taking App

    gRPC is an universal remote procedure call framework developed by Google that has been gaining inter ...

  5. iOS Swift WisdomScanKit图片浏览器功能SDK

    iOS Swift WisdomScanKit图片浏览器功能SDK使用 一:简介      WisdomScanKit 由 Swift4.2版编写,完全兼容OC项目调用. WisdomScanKit的 ...

  6. iOS Swift WisdomScanKit二维码扫码SDK,自定义全屏拍照SDK,系统相册图片浏览,编辑SDK

    iOS Swift WisdomScanKit 是一款强大的集二维码扫码,自定义全屏拍照,系统相册图片编辑多选和系统相册图片浏览功能于一身的 Framework SDK [1]前言:    今天给大家 ...

  7. iOS Swift WisdomHUD 提示界面框架

    iOS Swift WisdomHUD 提示界面框架  Framework Use profile(应用简介) 一:WisdomHUD简介 今天给大家介绍一款iOS的界面显示器:WisdomHUD,W ...

  8. iOS Swift WisdomKeyboardKing 键盘智能管家SDK

    iOS Swift WisdomKeyboardKing 键盘智能管家SDK [1]前言:    今天给大家推荐个好用的开源框架:WisdomKeyboardKing,方面iOS日常开发,优点和功能请 ...

  9. iOS swift项目IM实现,从长连接到数据流解析分析之Socket

    iOS  swift项目IM实现,从长连接到底层数据解析分析之Socket 一:项目简介:  去年开始接手了一个国企移动项目,项目的需求是实现IM即时通讯功能. * 一期版本功能包括了:       ...

随机推荐

  1. SQLite中SELECT基本形式

    SQLite中SELECT基本形式 每个数据库通常都包含多个表,而每个表又包含多条数据.要获取数据库中的数据,就需要SQL语言提供的查询语句SELECT.本章将讲解和SELECT语句相关的内容,其中包 ...

  2. Linux查看日志定位问题

    1.定位错误关键字所在行数 cat -n test.log |grep "查找的错误关键字" 2.得到错误关键字所在行号(假设为第500行),查询错误关键字前后100行数据 cat ...

  3. 每日踩坑 2019-04-09 Web.config configuration 蓝色波浪线 未声明 configuration 标签的解决办法

    百度看了几篇答案都没有给出解决方案,看了看 MSDN. https://docs.microsoft.com/zh-cn/previous-versions/ms228147(v=vs.110) 似乎 ...

  4. 实例化和设置一个优秀的php对象

    类是用于生成对象的代码模板,对象可以被说成是类的"实例" class ShopProduct{ public $title = 'default product'; // 属性也称 ...

  5. spring源码分析系列 (3) spring拓展接口InstantiationAwareBeanPostProcessor

    更多文章点击--spring源码分析系列 主要分析内容: 一.InstantiationAwareBeanPostProcessor简述与demo示例 二.InstantiationAwareBean ...

  6. Javascript中快速退出多重循环的技巧

    在双重循环或多重循环中判断条件,条件符合时跳出整个嵌套循环体是常见的程序逻辑.在Javascript中有哪些跳出的方法呢?楼主简单整理了一下. 一. 使用多个break语句跳出 var breaked ...

  7. Sql Server中sql语句自己主动换行

    怎么让sql server中的sql语句自己主动换行呢? 例如以下图: 工具--选项--全部语言 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamlhbm ...

  8. 访问win10的远程桌面(Remote Desktop)总是凭据或者用户密码错误

    家里电脑是Win10的,原来可以在公司通过远程桌面访问,最近自动升级了一次补丁后,远程可以连接,但是输入正确的用户密码后总提示凭据错误 (Win10是被访问的一方,修改的也是被访问的机器) 修复方式为 ...

  9. Linux性能分析流程图

  10. hash bucket

    什么是bucket bucket的英文解释: Hash table lookup operations are often O(n/m) (where n is the number of objec ...