美文网首页Swift
1.01表达式、变量和常量

1.01表达式、变量和常量

作者: Jimmy_L_Wang | 来源:发表于2019-06-13 00:15 被阅读0次

计算机工作原理

计算机的核心是一个中央处理器(CPU)。这本质上是一个数学机器。它对数字执行加法、减法和其他算术运算。当你操作你的电脑时,你所看到的一切都是建立在CPU每秒处理数百万次数字的基础上的。

CPU将它所处理的数字存储在称为寄存器(register)的小内存单元中。CPU能够从计算机的主存储器(称为随机存取存储器(RAM))中将数字读入寄存器。它还能够将存储在寄存器中的数字写回RAM。这使得CPU能够处理大量的数据,而这些数据并不都适合存储在寄存器库中。

cpu_register.png

当CPU将数值从RAM中提取到寄存器中时,它将在其数学单元中使用这些值,并将结果存储在另一个寄存器中。

每当CPU执行加法、减法、从RAM读取或向RAM写入操作时,它都在执行一条指令。每个计算机程序通常由成千上万条指令组成。一个复杂的计算机程序,比如您的操作系统macOS(是的,这也是一个计算机程序!),可能总共有数百万条指令。

编写单独的指令来告诉计算机该做什么是完全可能的,但是对于除最简单的程序之外的所有程序,这将是非常耗时和乏味的。这是因为大多数计算机程序的目标远不止简单的数学——计算机程序可以让你上网、处理图像、和朋友聊天。

您不是编写单独的指令,而是用特定的编程语言编写代码,例如使用Swift语言。代码通过一个叫做编译器的计算机程序,编译器把代码转换成CPU知道如何执行的指令。你写的每一行代码都会变成许多指令——有些行可能会变成几十条指令!

代码注释Code comments

单行注释

 // This is a comment. It is not executed.

多行注释

 // This is also a comment.
 // Over multiple lines.

/* This is also a comment.
   Over many..
   many...
   many lines. 
*/

嵌套注释

/* This is a comment.
 /* And inside it
 is
 another comment.
 */
 Back to the first.
 */

算术运算Arithmetic operations

简单运算

  • 加: +
  • 减: -
  • 乘:*
  • 除:/
2 + 6
10 - 2 
2 * 4 
24 / 3

书写格式

2+6   // OK
2 + 6 // OK
2 +6  // ERROR
2+ 6  // ERROR

取模运算

整数类型取模

28 % 10 //8

浮点数类型取模

(28.0).truncatingRemainder(dividingBy: 10.0) //8

移位操作Shift operations

左移shift left和右移操作shift right采用十进制数的二进制形式,并分别将数字向左或向右移动。然后返回新的二进制数的十进制形式。

例如,二进制中填充为8位的十进制数字14是00001110。左移两位得到00111000,转换为十进制数是56。

shift_operation.png
  • Shift left: <<
  • Shift right: >>
1 << 3 //8 1乘以2的3次方
32 >> 2 //8 32初一2的2次方

使用移位的一个原因是使乘或除2的幂(2的几次方)变得容易。注意左移1等于乘以2,左移2等于乘以4,以此类推。同样地,右移1等于除以2,右移2等于除以4,以此类推。

在过去,代码经常使用这种技巧,因为对CPU来说,移位比特(bits)要比复杂的乘法和除法运算简单得多。因此,如果使用移位,代码会更快。然而,现在的cpu要快得多,编译器甚至可以将乘方和除法转换为移位。因此,您将看到只有在进行二进制操作时才会发生移位,除非您成为一名嵌入式系统程序员,否则您可能不会看到这种情况!

数学函数Math functions

Swift还提供了大量的数学函数供您在必要时使用。你永远不知道什么时候你需要用到一些三角函数,尤其是当你是Swift的一名专业人员并编写那些复杂的游戏时!

sin(45 * Double.pi / 180)
// 0.7071067811865475
cos(135 * Double.pi / 180)
// -0.7071067811865475

(2.0).squareRoot()  //2.0的平方根
// 1.414213562373095

(4.0).squareRoot()  //4.0的平方根
//2.0

max(5, 10)
// 10
min(-5, -10)
// -10

Double.pi / 2
//1.570796326794897

max((2.0).squareRoot(), Double.pi / 2)
// 1.570796326794897

命名数据Naming data

最简单地说,计算机编程就是操作数据。记住,您在屏幕上看到的所有内容都可以简化为发送给CPU的数字。有时,您将这些数据表示为各种类型的数字,并对其进行处理,但其他时候,数据以更复杂的形式出现,比如文本、图像和集合。

在你的Swift代码中,你可以给每一段数据起一个名字,以后你可以用来引用它。名称后面跟一个关联类型,该类型表示名称所引用的数据类型,例如文本、数字或日期。

常量

let number: Int = 10

它声明一个名为number的常量,类型为Int,然后将该常量的值设置为10。

let pi: Double = 3.14159
let anotherDecimal: Float = 1.234

事实上,Double的精度是Float的两倍,这就是为什么它一开始就被称为Double。浮点数占用的内存比双精度浮点数少,但通常,对数字的内存使用不是一个大问题,而且在大多数地方都使用双精度浮点数。

变量

当您知道需要更改某些数据时,应该使用变量来表示该数据,而不是使用常量。您可以用类似的方式声明一个变量,如下所示:

var variableNumber: Int = 42

一旦您声明了一个变量,您就可以随意地将它更改为您想要的数值,只要类型保持不变。例如,要更改上面声明的变量,可以这样做:

variableNumber = 0
variableNumber = 1_000_000

注意:在Swift中,您可以选择使用下划线使更大的数字更易于人阅读。下划线的数量和位置由您决定。

使用有意义的名字进行数据的命名 Using meaningful names

始终为变量和常量选择有意义的名称。好的名称可以充当文档,使代码易于阅读。

使用驼峰命名方式:

  • 以小写字母开头。
  • 如果名称由多个单词组成,则将它们连接在一起,并每隔一个单词以大写字母开始。
  • 如果其中一个单词是缩写,则将整个缩写用相同的大小写写下来(例如:sourceURL和urlDescription)。
var 🐶💩:Int=-1

虽然你可以使用Unicode字符为变量命名,但是在实际编程过程中还是不要这么做

递增和递减Increment and decrement

var counter: Int = 0
counter += 1
// counter = 1
counter -= 1
// counter = 0
counter = 10
counter *= 3  // same as counter = counter * 3
// counter = 30
counter /= 2  // same as counter = counter / 2
// counter = 15

翻译自Raywenderlich的Swift书籍Swift Apprentice

相关文章

  • 1.01表达式、变量和常量

    计算机工作原理 计算机的核心是一个中央处理器(CPU)。这本质上是一个数学机器。它对数字执行加法、减法和其他算术运...

  • python基本语法:变量、常量、表达式和运算符

    一、变量、常量 变量:值可以动态变化的量 常量:值不会发生变化,如 π 、e 二、表达式和运算符 表达式:由变量...

  • 二、python运算符

    表达式 变量或(和)常量和运算符(又叫操作符)的组合叫表达式。表达式中的变量或常量称为操作数,表达式可分为多种类别...

  • Java基础恢复(待完善)

    1. 环境配置(MAC) 2. 基础 标识符 常量与变量 常量 变量 运算符和表达式 运算符 表达式 数据类型 4...

  • 第4章 表达式和运算符

    原始表达式:包括常量或直接量,关键字和变量

  • 尤达表达式

    不要使用尤达表达式。尤达表达式是指,拿一个常量去和变量比较而不是拿变量去和常量比较。它就像是在表达 “蓝色是不是天...

  • 2018-12-04jmeter变量_变量池_正则表达式提取器

    jmeter变量变量池正则表达式提取器 变量 常量和变量 在数学中 1.常量也叫做常数数字,就是不变的量,例如:1...

  • 《日子》golang-常量与运算符

    常量的定义 -常量的值在编译时就已经确定-常量的定义格式与变量基本相同-等号右侧必须是常量或常量表达式-常量表达式...

  • Swift--语法基础

    标识符和关键字 常量和变量 注释 表达式 标识符和关键字 标识符就是常量、变量、方法、函数、枚举、结构体、类、协议...

  • 1.3 Swift语言中的常量和变量 [Swift教程]

    1. 常量和变量是构成表达式的重要组成部分。本节课将为您演示开发语言的常量和变量。现在开始编写示例代码。 2. 这...

网友评论

    本文标题:1.01表达式、变量和常量

    本文链接:https://www.haomeiwen.com/subject/fhydfctx.html