Tradition suggests that the first program in a new language should print the words "Hello ,world!" on the screen. In Swift , this can be done in a single line :  print("Hello world")

If you gave written code in C otr Objective - C , this syntax looks famiiar to you --- in Swift . this line of code is a complete program. Youdon't need to import a separate library for functionality like input /output or string handling . Code written at global scope is used sa the entry point for the program , so you don't need a main () function . You also don't need to write semicolons at the end of every statement .

This tour gives you enough information to start writing code in Swift by showing you how to accomplish a variety of programming tasks . Don't worry if you don't understand something --everything introduced in this tour is explained in detail in the rest of this book.

Simple Values

Use ler to make a constant and var to make a variable . The value of a constant doesn't need to be known at compile time , but you must assign it a value exactly once . This means you can use constants to name a value that you determine once but use in many places .

var myVariable = 42

         myVariable  = 50

         let myConstant = 42

A constant or variable must have the same type as the value you want to assign to it. However, you don't always have to write the type explictly.Providing a vakue when you creare a constant or variable lets the conpiler infer its type . In the exmple  above , the compiler infers  that myVariable is  an integer because its initial value is an integer.

If the  initial value doesn't provide enough information (or if there is no initial value ), specify the type by writing it after the variable , separated by a colon.

let implicitInterger = 70

               let impicitDouble = 80.0

               let explisitDouble : Double = 70

Values are never implicitly converted to  another type . If you need to convert a value to a different type, explicitly make an instance of the desired type .

      let label = " The width is "

      let width = 94

      let widthLable = lable + String (width)

There's an even simpler way to include balues in string : write the value in parentheses, and write a backslash (\) before th parentheses . For example:       let apples = 4

      let oranges = 5

      let appleSummary = " I have \ (apples) apples."

      let fruitSummary = " I have \ (apples  + oranges ) piceces of fruit ."

Create arrays  and dictionaries using brackets ([]), and access their elements by writing the index or key in brackets . A comma is allowed is allowed after the last element.

var shoppingList  = ["catfish","water"]

   shoppingList [1] = "bottle of water"

   var occupations = ["Malcolm":"Captain"]

    occupations ["Jayne"] = "Public Relations"

To create an empty array or dictionary, use the initializer syntax.

    let emptyArray = [String] ()

    let emptyDictionary = [String : float]()

If type information can be inferred , you can write an empty array as [] and an empty dictionary as [:] -- for example , when you set a new value for a variable or pass ab argument to a function.

    shoppingList = []

    occupation = [:]

Control Flow

Use if and switch to make conditionals , and use for - in , while ,and repeat- while to make loops . Paretheses around the condition or loop variable are optional . Braces around the body are required.

    let indviidualScores = [75, 43 , 103, 87 12]

    var teamScore = 0

    for score in individualScores {

if score > 50{

  teamScore += 3

}

  else {

  teamScore += 1

}

}

print(teamScore)

In a if statement, the conditional must be a Boolean expression --- this means that code such as if score {...} is an error, not an implicit comparison to zero.

You can use if and let together ro work with values that might be missing . These values are represented as optionals. An optional value either contains a value or contains nil to indicte that a value a is missing . Write a question mark (?) after the type of a value to mark the value as optional .

   var optionalString :String? = "Hello"

  print(optionalString == nil )

  var optionalName :string? = "john appleseed"

  var greeting = "Hello!"

  if let name = optionalName {

  greetiing = "Hello, \(name)"

}

If the optional value is nil , the conditional is false and the code in braces is skipped . Otherwise , the optional value is unwrapped and assigned to the constnat after let , which makes the unwrapped value available inside the block of code .

Switches support any kind of data and a wide variety of comparison operations -- they aren't limited to integers and tests for equality.

A Swifr Tour的更多相关文章

  1. POJ 1637 Sightseeing tour

    Sightseeing tour Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 9276   Accepted: 3924 ...

  2. Euler Tour Tree与dynamic connectivity

    Euler Tour Tree最大的优点就是可以方便的维护子树信息,这点LCT是做不到的.为什么要维护子树信息呢..?我们可以用来做fully dynamic connectivity(online) ...

  3. POJ2677 Tour[DP 状态规定]

    Tour Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4307   Accepted: 1894 Description ...

  4. soj 1015 Jill's Tour Paths 解题报告

    题目描述: 1015. Jill's Tour Paths Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description Every ...

  5. poj1637 Sightseeing tour

    Sightseeing tour Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8859   Accepted: 3728 ...

  6. A quick tour of JSON libraries in Scala

    A quick tour of JSON libraries in Scala Update (18.11.2015): added spray-json-shapeless libraryUpdat ...

  7. POJ 1637 Sightseeing tour (混合图欧拉路判定)

    Sightseeing tour Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 6986   Accepted: 2901 ...

  8. POJ 1637 Sightseeing tour (混合图欧拉回路)

    Sightseeing tour   Description The city executive board in Lund wants to construct a sightseeing tou ...

  9. POJ2135 Farm Tour

      Farm Tour Time Limit: 2MS   Memory Limit: 65536KB   64bit IO Format: %I64d & %I64u Description ...

随机推荐

  1. C#语言基础知识

    一. string i_str = "321"; string 型,强制转换成 int 型 int i_int1 = int.parse(i_str); string 型,强制转换 ...

  2. Linux下Mysql自启动

    如果你都是按照默认配置安装的那么只要按照如下步骤就可以了 1.cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql   将服 ...

  3. 用jQuery实现简单的简单的轮播图

    图片来源 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  4. Struts2学习:Action获取properties文件的值

    配置文件路径: 配置内容: 方法一: Action内被调用的函数添加下段代码: Properties props = new Properties(); props.load(UploadFileAc ...

  5. HTMLTestRunner不生成报告

    使用HTMLTestRunner想生成测试报告,尝试了很多次了,就是无法生成,在百度搜索发现是快捷键问题 工具:Pycharm Ctrl+Shift+F10运行不会生成脚本 Alt+Shift+F10 ...

  6. C# .NET 配置404,500等错误信息

    <customErrors mode="On" defaultRedirect="viewAll.html"><!--所有的错误显示页--&g ...

  7. sshd_config

    1.sshd_config 选项不区分大小写,参数区分大小写. sshd_config选项及参数 选项 默认值 说明 AcceptEnv 不接受任何值   AddressFamily any any/ ...

  8. 20165205 2017-2018-2 《Java程序设计》第六周学习总结

    20165205 2017-2018-2 <Java程序设计>第六周学习总结 教材学习内容总结 String类 String对象(常量,对象) 字符串并置(结果仍是常量) 常用方法 len ...

  9. 制作本地yum源

    镜像源是centos当中下载相关软件的地址,我们可以通过制作我们自己的镜像源指定我们去哪里下载impala的rpm包,这里我们使用httpd这个软件来作为服务端,启动httpd的服务来作为我们镜像源的 ...

  10. 7.adb安装

    adb的全称为Android Debug Bridge,中文名“调试桥”顾名思义adb命令是调试手机中应用的一种方法,而且作为Android SDK中的工具,其功能非常强大,用这个命令行工具可以直接操 ...