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

import UIKit

// swift中没有被赋值的变量是不能被使用的
//var str : String
//str // Optionals 可选值 (用?号体现)
// 或者是一个值, 或者是没有值(没有值时为nil) var a : Int?
a
a = var imOptionalVariable : String?
imOptionalVariable = "我是可选值" // 例如, 在要求用户输入年龄的时候, 用户却输入了abc
// 后台转换为年龄的时候, 可选值就有了很大的作用, 一旦转换不了就会返回nil
let userInput = ""
var age : Int? = Int(userInput) if age != nil {
// 感叹号是告知编译器开发者确定可选值里面是有值的(也叫做解包)
print("your age is \(age!)")
print("your age is \(age)")
} else {
print("输入无效")
} // 强制类型转换不能针对一个可选值进行转换
// println("your age is " + String(age))
// 更正后:
print("your age is " + String(age!)) // 可选值自动解包
// 可选绑定:可以用在if和while语句中来对可选类型的值进行判断并把值赋给一个常量或者变量
if let userAge = Int(userInput) {
// 这里不需要加感叹号
print("your age is \(userAge)")
} var rinpe : Int?
rinpe =
if let bobo = rinpe {
print("\(rinpe) \(bobo)")
}

Swift - 09 - Optionals的更多相关文章

  1. Swift 可选(Optionals)类型

    Swift 的可选(Optional)类型,用于处理值缺失的情况.可选表示"那儿有一个值,并且它等于 x "或者"那儿没有值". Swfit语言定义后缀?作为命 ...

  2. 浅谈 Swift 中的 Optionals

    input[type="date"].form-control,.input-group-sm>input[type="date"].input-grou ...

  3. [翻译]理解Swift中的Optional

    原文出处:Understanding Optionals in Swift 苹果新的Swift编程语言带来了一些新的技巧,能使软件开发比以往更方便.更安全.然而,一个很有力的特性Optional,在你 ...

  4. IOS开发-Swift新语言初见

    Safe Swift pairs increased type safety with type inference, restricts direct access to pointers, and ...

  5. [Swift A] - Welcome to Swift

    Swift is a new object-oriented programming language for iOS and OS X development. Swift is modern, p ...

  6. Swift初见

    Swift基本类型 Swift的类型是在C和OC的基础上发展而来的,Int是整型:Double和Float是浮点型:Bool是布尔型:String是字符串.类似OC,Swift也提出了三个集合类型:A ...

  7. Windows7WithSP1/TeamFoundationServer2012update4/SQLServer2012

    [Info   @09:03:33.737] ====================================================================[Info   @ ...

  8. Swift入门(四)——可选类型(Optionals)与断言(Assert)

    可选类型是什么? 首先看一个问题,Swift中String类型的变量有一个叫做toInt的方法,能够把String类型变量转换为Int类型变量. var stringValue = "5&q ...

  9. Swift游戏实战-跑酷熊猫 09 移除场景之外的平台

    上一节,我们写出了一个疯狂产生平台的东西.所谓上帝欲使其灭亡,必先使其疯狂.所以太疯狂都不是什么好事,所以我们要采取一些措施,例如移除场景之外的平台.btw如果哪天你觉得自己的老板行为乖张,难以理喻. ...

随机推荐

  1. keil MDK启动文件分析---基于LPC2100系列(其实都是相通的)

    转用MDK有一段时间了,越来越觉得MDK的强大,因为我之前都是用ADS1.2开发产品,所以更能体会到MDK的强大与易用性.MDK编译出来的代码与ADS1.2相比,代码量减少了很多,我的一个工程用ADS ...

  2. c#:for循环;穷举,迭代 练习

    一)穷举 1. 第x种买法:羽毛球拍xx个,羽毛球xx个,水xx瓶 2. 单位给发了一张150元购物卡,拿着到超市买三类洗化用品.     洗发水15元,香皂2元,牙刷5元.求刚好花完150元,有多少 ...

  3. [C#] - 注入DLL

    原文:http://xyzlht.blog.163.com/blog/static/69301417200882834211787/ ) { MessageBox.Show("创建远程线程失 ...

  4. 构造函数语义学之Copy Constructor构建操作(2)

    二.详述条件 3 和 4 那么好,我又要问大家了,条件1 和 2比较容易理解.因为member object或 base class 含有copy constructor.那么member objec ...

  5. C#在父窗口中调用子窗口的过程(无法访问已释放的对象)异常,不存在从对象类型System.Windows.Forms.DateTimePicker到已知的托管提供程序本机类型的映射。

    一:C#在父窗口中调用子窗口的过程(无法访问已释放的对象)异常 其实,这个问题与C#的垃圾回收有关.垃圾回收器管 理所有的托管对象,所有需要托管数据的.NET语言(包括 C#)都受运行库的 垃圾回收器 ...

  6. Android按钮式进度条

    package com.example.progress.demo; import android.annotation.SuppressLint; import android.content.Co ...

  7. Tangled in Cables(Kruskal+map容器处理字符串)

    /** 题意:     给你两个城市之间的道路(无向图),求出需要的     电缆.如果大于所提供的,就输出Not enough ...     否则输出所需要的电缆长度.       输入:N (给 ...

  8. poj1222

    貌似又是一个矩阵图形的问题,看起来应该是不太容易,不管了先做做吧! 题目大意: 题目:灯光延伸出去(延长熄灯)?? 在一个扩展的游戏版本 熄灯,它是一个难题(或者谜)在一个5行每一行有6个按钮(实际是 ...

  9. Linux下设置允许myql数据库远程连接

    系统环境: Linux ubuntu --generic #-Ubuntu SMP Thu Apr :: UTC x86_64 x86_64 x86_64 GNU/Linux 系统中已经安装好mysq ...

  10. java 编辑报错 非法字符: \ufeff 解决方案

    用Notepad ++ 调成utf-8 格式 bom 或无bom根据情况 新建类 把代码一句句粘进去 ok