陕西省建设监理协会网站证件查询什么是网络营销产生的技术原因

news/2025/9/22 21:06:58/文章来源:
陕西省建设监理协会网站证件查询,什么是网络营销产生的技术原因,广元城乡建设部网站首页,台安人才网Swift 可选(Optionals)类型 Swift 的可选#xff08;Optional#xff09;类型#xff0c;用于处理值缺失的情况。可选表示那儿有一个值#xff0c;并且它等于 x 或者那儿没有值。 Swfit语言定义后缀#xff1f;作为命名类型Optional的简写…Swift 可选(Optionals)类型 Swift 的可选Optional类型用于处理值缺失的情况。可选表示那儿有一个值并且它等于 x 或者那儿没有值。 Swfit语言定义后缀作为命名类型Optional的简写换句话说以下两种声明是相等的 var optionalInteger: Int? var optionalInteger: OptionalInt 在这两种情况下变量 optionalInteger 都是可选整数类型。注意在类型和 ?之间没有空格。 Optional 是一个含有两种情况的枚举None 和 Some(T)用来表示可能有或可能没有值。任何类型都可以明确声明为或者隐式转换可选类型。当声明一个可选类型的时候要确保用括号给 ? 操作符一个合适的范围。例如声明可选整数数组应该写成 (Int[])? 写成 Int[]? 会报错。 当你声明一个可选变量或者可选属性的时候没有提供初始值它的值会默认为 nil。 可选项遵照 LogicValue 协议因此可以出现在布尔环境中。在这种情况下如果可选类型T?包含类型为T的任何值也就是说它的值是 Optional.Some(T) 这个可选类型等于 true反之为 false。 如果一个可选类型的实例包含一个值你可以用后缀操作符 来访问这个值如下所示 optionalInteger 42 optionalInteger! // 42 使用操作符去获取值为nil的可选变量会有运行时错误。 你可以用可选链接和可选绑定选择性执行可选表达式上的操作。如果值为nil任何操作都不会执行也不会有运行报错。 让我们来详细看下以下实例来了解 Swift 中可选类型的应用: import Cocoavar myString:String? nilif myString ! nil {print(myString) }else{print(字符串为 nil) } 以上程序执行结果为 字符串为 nil 可选类型类似于Objective-C中指针的nil值但是nil只对类(class)有用而可选类型对所有的类型都可用并且更安全。 强制解析 当你确定可选类型确实包含值之后你可以在可选的名字后面加一个感叹号!来获取值。这个感叹号表示我知道这个可选有值请使用它。这被称为可选值的强制解析forced unwrapping。 注意 使用!来获取一个不存在的可选值会导致运行时错误。使用!来强制解析值之前一定要确定可选包含一个非nil的值。 强制解析可选值使用感叹号! import Cocoavar myString:String?myString Hello, Swift!if myString ! nil {// 强制解析print( myString! ) }else{print(myString 值为 nil) } 自动解析 你可以在声明可选变量时使用感叹号!替换问号?。这样可选变量在使用时就不需要再加一个感叹号!来获取值它会自动解析。   import Cocoavar myString:String!myString Hello, Swift!if myString ! nil {print(myString) }else{print(myString 值为 nil) } 可选绑定 使用可选绑定optional binding来判断可选类型是否包含值如果包含就把值赋给一个临时常量或者变量。可选绑定可以用在if和while语句中来对可选类型的值进行判断并把值赋给一个常量或者变量。 像下面这样在if语句中写一个可选绑定 if let constantName someOptional {statements } 类型标注 当你声明常量或者变量的时候可以加上类型标注type annotation说明常量或者变量中要存储的值的类型。如果要添加类型标注需要在常量或者变量名后面加上一个冒号和空格然后加上类型名称。 var constantName:data type optional initial value事例 let constB:Float 3.14159常量命名 Swift 是一个区分大小写的语言所以字母大写与小写是不一样的。 常量名也可以使用简单的 Unicode 字符如下实例 let 你好 你好世界 print(你好) 以上程序执行结果为你好世界 常量输出 变量和常量可以使用 printswift 2 将 print 替换了 println 函数来输出。 在字符串中可以使用括号与反斜线来插入常量如下实例   let name 菜鸟教程 let site http://www.runoob.comprint(\(name)的官网地址为\(site))以上程序执行结果为 菜鸟教程的官网地址为http://www.runoob.com整型字面量 整型字面量可以是一个十进制二进制八进制或十六进制常量。 二进制前缀为 0b八进制前缀为 0o十六进制前缀为 0x十进制没有前缀   let binaryInteger 0b10001 // 17 - 二进制表示 let octalInteger 0o21 // 17 - 八进制表示 let hexadecimalInteger 0x11 // 17 - 十六进制表示 浮点型字面量 浮点型字面量有整数部分小数点小数部分及指数部分。 除非特别指定浮点型字面量的默认推导类型为 Swift 标准库类型中的 Double表示64位浮点数。 浮点型字面量默认用十进制表示无前缀也可以用十六进制表示加前缀 0x。 十进制浮点型字面量由十进制数字串后跟小数部分或指数部分或两者皆有组成。十进制小数部分由小数点 . 后跟十进制数字串组成。指数部分由大写或小写字母 e 为前缀后跟十进制数字串组成这串数字表示 e 之前的数量乘以 10 的几次方。例如1.25e2 表示 1.25 ⨉ 10^2也就是 125.0同样1.25e2 表示 1.25 ⨉ 10^2也就是 0.0125。 十六进制浮点型字面量由前缀 0x 后跟可选的十六进制小数部分以及十六进制指数部分组成。十六进制小数部分由小数点后跟十六进制数字串组成。指数部分由大写或小写字母 p 为前缀后跟十进制数字串组成这串数字表示 p 之前的数量乘以 2 的几次方。例如0xFp2 表示 15 ⨉ 2^2也就是 60同样0xFp-2 表示 15 ⨉ 2^-2也就是 3.75。 负的浮点型字面量由一元运算符减号 - 和浮点型字面量组成例如 -42.5。 符串型字面量 字符串型字面量由被包在双引号中的一串字符组成形式如下 characters 字符串型字面量中不能包含未转义的双引号 、未转义的反斜线\、回车符或换行符。 转义字符含义\0空字符\\反斜线 \\b退格(BS) 将当前位置移到前一列\f换页(FF)将当前位置移到下页开头\n换行符\r回车符\t水平制表符\v垂直制表符\单引号\双引号\0001到3位八进制数所代表的任意字符\xhh...1到2位十六进制所代表的任意字符 布尔型字面量 布尔型字面量的默认类型是 Bool。 布尔值字面量有三个值它们是 Swift 的保留关键字 true 表示真。 false 表示假。 nil 表示没有值。 位运算符 位运算符用来对二进制位进行操作~,,|,^分别为取反按位与与按位与或按位与异或运算如下表实例 pqp qp | qp ^ q00000010111111010011 进行位运算 运算符描述图解实例按位与。按位与运算符对两个数进行操作然后返回一个新的数这个数的每个位都需要两个输入数的同一位都为1时才为1。 (A B) 结果为 12, 二进制为 0000 1100|按位或。按位或运算符|比较两个数然后返回一个新的数这个数的每一位设置1的条件是两个输入数的同一位都不为0(即任意一个为1或都为1)。 (A | B) 结果为 61, 二进制为 0011 1101^按位异或. 按位异或运算符^比较两个数然后返回一个数这个数的每个位设为1的条件是两个输入数的同一位不同如果相同就设为0。 (A ^ B) 结果为 49, 二进制为 0011 0001~按位取反运算符~对一个操作数的每一位都取反。 (~A ) 结果为 -61, 二进制为 1100 0011 in 2s complement form.按位左移。左移操作符将操作数的所有位向左移动指定的位数。 下图展示了11111111 111111111 左移一位的结果。蓝色数字表示被移动位灰色表示被丢弃位空位用橙色的0填充。 A 2 结果为 240, 二进制为 1111 0000按位右移。右移操作符将操作数的所有位向右移动指定的位数。 下图展示了11111111 111111111 右移一位的结果。蓝色数字表示被移动位灰色表示被丢弃位空位用橙色的0填充。 A 2 结果为 15, 二进制为 0000 1111 Swift 提供了两个区间的运算符。 运算符描述实例闭区间运算符闭区间运算符a...b定义一个包含从a到b(包括a和b)的所有值的区间b必须大于等于a。 ‌ 闭区间运算符在迭代一个区间的所有值时是非常有用的如在for-in循环中1...5 区间值为 1, 2, 3, 4 和 5半开区间运算符半开区间a..b定义一个从a到b但不包括b的区间。 之所以称为半开区间是因为该区间包含第一个值而不包括最后的值。1.. 5 区间值为 1, 2, 3, 和 4 运算符优先级 在一个表达式中可能包含多个有不同运算符连接起来的、具有不同数据类型的数据对象由于表达式有多种运算不同的运算顺序可能得出不同结果甚至出现错误运算错误因为当表达式中含多种运算时必须按一定顺序进行结合才能保证运算的合理性和结果的正确性、唯一性。 优先级从上到下依次递减最上面具有最高的优先级逗号操作符具有最低的优先级。 相同优先级中按结合顺序计算。大多数运算是从左至右计算只有三个优先级是从右至左结合的它们是单目运算符、条件运算符、赋值运算符。 基本的优先级需要记住 指针最优单目运算优于双目运算。如正负号。先乘除模后加减。先算术运算后移位运算最后位运算。请特别注意1 3 2 7 等价于 (1 (3 2))7逻辑运算最后计算 Swift 运算符优先级 (从高到低) 运算符实例位运算符 乘法运算符* % * /加法运算符| - -  ^区间运算符.. ...类型转换运算符is asnil 的聚合运算??比较运算符! 逻辑与运算符逻辑或运算符||波浪箭头~三元运算符?:箭头函数( )赋值运算符| % / * ^ - 合并空值运算符?? 合并空值运算符 a ?? b 如果可选项 a 有值则展开如果没有值是 nil则返回默认值 b。 表达式 a 必须是一个可选类型表达式 b 必须与 a 的存储类型相同合并空值运算符实际上是三元运算符作用到 Optional 上的缩写 a ! nil ? a! : b如果 a 的值是非空b的值将不会被考虑也就是合并空值运算符是短路的。 var fff : [String]? let k[test] as? [String] ?? [str1, str2, str3] print(k) let fffff as? [String] ?? [str1, str2, str3] print(ff) 结果 [test] [str1, str2, str3]循环类型 Swift 语言提供了以下几种循环类型。点击链接查看每个类型的详细描述 循环类型描述 for-in 遍历一个集合里面的所有元素例如由数字表示的区间、数组中的元素、字符串中的字符。 for 循环  该循环方式在 Swift 3 中已经弃用。 用来重复执行一系列语句直到达成特定条件达成一般通过在每次循环完成后增加计数器的值来实现。 while 循环 运行一系列语句如果条件为true会重复运行直到条件变为false。 repeat...while 循环 类似 while 语句区别在于判断循环条件之前先执行一次循环的代码块。 循环控制语句 循环控制语句改变你代码的执行顺序通过它你可以实现代码的跳转。Swift 以下几种循环控制语句 控制语句描述 continue 语句 告诉一个循环体立刻停止本次循环迭代重新开始下次循环迭代。 break 语句 中断当前循环。 fallthrough 语句 如果在一个case执行完后继续执行下面的case需要使用fallthrough(贯穿)关键字。 创建字符串 你可以通过使用字符串字面量或 String 类的实例来创建一个字符串 // 使用字符串字面量 var stringA Hello, World!// String 实例化 var stringB String(Hello, World!) 空字符串 你可以使用空的字符串字面量赋值给变量或初始化一个String类的实例来初始值一个空的字符串。 我们可以使用字符串属性 isEmpty 来判断字符串是否为空   // 使用字符串字面量创建空字符串 var stringA if stringA.isEmpty {print( stringA 是空的 ) } else {print( stringA 不是空的 ) }// 实例化 String 类来创建空字符串 let stringB String() 字符串常量 你可以将一个字符串赋值给一个变量或常量变量是可修改的常量是不可修改的。 // stringA 可被修改 var stringA 菜鸟教程 stringA http://www.runoob.com print( stringA ) 输出结果菜鸟教程http://www.runoob.com 字符串中插入值 字符串插值是一种构建新字符串的方式可以在其中包含常量、变量、字面量和表达式。 您插入的字符串字面量的每一项都在以反斜线为前缀的圆括号中   var varA 20 let constA 100 var varC:Float 20.0var stringA \(varA) 乘于 \(constA) 等于 \(varC * 100) print( stringA )以上程序执行输出结果为 20 乘于 100 等于 2000.0字符串连接 字符串可以通过  号来连接实例如下   let constA 菜鸟教程 let constB http://www.runoob.comvar stringA constA constBprint( stringA ) 以上程序执行输出结果为 菜鸟教程http://www.runoob.com字符串长度 字符串长度使用 String.count 属性来计算实例如下 Swift 3 版本使用的是 String.characters.count import Cocoavar varA www.runoob.comprint( \(varA), 长度为 \(varA.count) ) 以上程序执行输出结果为 www.runoob.com, 长度为 14字符串比较 你可以使用  来比较两个字符串是否相等 var varA Hello, Swift! var varB Hello, World!if varA varB {print( \(varA) 与 \(varB) 是相等的 ) } else {print( \(varA) 与 \(varB) 是不相等的 ) }以上程序执行输出结果为 Hello, Swift! 与 Hello, World! 是不相等的 Unicode 字符串 Unicode 是一个国际标准用于文本的编码Swift 的 String 类型是基于 Unicode建立的。你可以循环迭代出字符串中 UTF-8 与 UTF-16 的编码实例如下 import Cocoavar unicodeString 菜鸟教程print(UTF-8 编码: ) for code in unicodeString.utf8 {print(\(code) ) }print(\n)print(UTF-16 编码: ) for code in unicodeString.utf16 {print(\(code) ) } 以上程序执行输出结果为 UTF-8 编码: 232 143 156 233 184 159 230 149 153 231 168 139 UTF-16 编码: 33756 40479 25945 31243 字符串函数及运算符 Swift 支持以下几种字符串函数及运算符 序号函数/运算符 描述1 isEmpty 判断字符串是否为空返回布尔值 2 hasPrefix(prefix: String) 检查字符串是否拥有特定前缀 3 hasSuffix(suffix: String) 检查字符串是否拥有特定后缀。 4 Int(String) 转换字符串数字为整型。 实例: let myString: String 256 let myInt: Int? Int(myString) 5 String.count Swift 3 版本使用的是 String.characters.count 计算字符串的长度 6 utf8 您可以通过遍历 String 的 utf8 属性来访问它的 UTF-8 编码 7 utf16 您可以通过遍历 String 的 utf8 属性来访问它的 utf16 编码 8 unicodeScalars 您可以通过遍历String值的unicodeScalars属性来访问它的 Unicode 标量编码. 9 连接两个字符串并返回一个新的字符串 10 连接操作符两边的字符串并将新字符串赋值给左边的操作符变量 11 判断两个字符串是否相等 12 比较两个字符串对两个字符串的字母逐一比较。 13 ! 比较两个字符串是否不相等。 字符串分割数组 -- 基于空格 let fullName First Last let fullNameArr fullName.characters.split{$0 }.map(String.init) // or simply: // let fullNameArr fullName.characters.split{ }.map(String.init)//现在的方法var fullNameArr fullName.split(separator: )fullNameArr[0] // First fullNameArr[1] // Last 字符串的遍历 Swift 5: let str 菜鸟教程runoob.comprint(---- 正序遍历 ----) var i 0 for ch in str {print(\(i): \(ch))i 1 }print(---- 逆序遍历 ----) var j str.count for ch in str.reversed() {j - 1print(\(j): \(ch)) }print(---- 基于索引的正序遍历 ----) for i in 0..str.count {let ch: Character str[str.index(str.startIndex, offsetBy: i)]print(\(i): \(ch)) }print(---- 基于索引的逆序遍历 ----) //for i in stride(from: str.count - 1, to: -1, by: -1) { for i in stride(from: str.count - 1, through: 0, by: -1) {let ch: Character str[str.index(str.startIndex, offsetBy: i)]print(\(i): \(ch)) }print(---- 基于EnumeratedSequence的遍历 ----) for (i, ch) in str.enumerated() {print(\(i): \(ch)) }字符串连接字符 以下实例演示了使用 String 的 append() 方法来实现字符串连接字符 import Cocoavar varA:String Hello let varB:Character GvarA2.append( \(varB) )print(varC \(varA)) 以上程序执行输出结果为 varC Hello G 修改数组 你可以使用 append() 方法或者赋值运算符 在数组末尾添加元素如下所示我们初始化一个数组并向其添加元素 import Cocoavar someInts [Int]()someInts.append(20) someInts.append(30) someInts [40]var someVar someInts[0]print( 第一个元素的值 \(someVar) ) print( 第二个元素的值 \(someInts[1]) ) print( 第三个元素的值 \(someInts[2]) ) 以上程序执行输出结果为 第一个元素的值 20 第二个元素的值 30 第三个元素的值 40 我们也可以通过索引修改数组元素的值 import Cocoavar someInts [Int]()someInts.append(20) someInts.append(30) someInts [40]// 修改最后一个元素 someInts[2] 50 如果我们同时需要每个数据项的值和索引值可以使用 String 的 enumerate() 方法来进行数组遍历。实例如下 import Cocoavar someStrs [String]()someStrs.append(Apple) someStrs.append(Amazon) someStrs.append(Runoob) someStrs [Google]for (index, item) in someStrs.enumerated() {print(在 index \(index) 位置上的值为 \(item)) } 合并数组 我们可以使用加法操作符来合并两种已存在的相同类型数组。新数组的数据类型会从两个数组的数据类型中推断出来 count 属性 我们可以使用 count 属性来计算数组元素个数 isEmpty 属性 我们可以通过只读属性 isEmpty 来判断数组是否为空返回布尔值 创建数组的方法不推荐使用文章中记载的方法。 推荐: var names: [String] [] var lookup: [String: Int] [:] 不推荐: var names [String]() var lookup [String: Int]() 创建字典 我们可以使用以下语法来创建一个特定类型的空字典 var someDict [KeyType: ValueType]() 以下是创建一个空字典键的类型为 Int值的类型为 String 的简单语法 var someDict [Int: String]() 以下为创建一个字典的实例 var someDict:[Int:String] [1:One, 2:Two, 3:Three] 访问字典 我们可以根据字典的索引来访问数组的元素语法如下 var someVar someDict[key] 修改字典 我们可以使用 updateValue(forKey:) 增加或更新字典的内容。如果 key 不存在则添加值如果存在则修改 key 对应的值。updateValue(_:forKey:)方法返回Optional值。实例如下 import Cocoavar someDict:[Int:String] [1:One, 2:Two, 3:Three]var oldVal someDict.updateValue(One 新的值, forKey: 1)var someVar someDict[1]print( key 1 旧的值 \(oldVal) ) print( key 1 的值为 \(someVar) ) print( key 2 的值为 \(someDict[2]) ) print( key 3 的值为 \(someDict[3]) ) 以上程序执行输出结果为 key 1 旧的值 Optional(One) key 1 的值为 Optional(One 新的值) key 2 的值为 Optional(Two) key 3 的值为 Optional(Three) 移除 Key-Value 对 我们可以使用 removeValueForKey() 方法来移除字典 key-value 对。如果 key 存在该方法返回移除的值如果不存在返回 nil 。实例如下 import Cocoavar someDict:[Int:String] [1:One, 2:Two, 3:Three]var removedValue someDict.removeValue(forKey: 2)print( key 1 的值为 \(someDict[1]) ) print( key 2 的值为 \(someDict[2]) ) print( key 3 的值为 \(someDict[3]) ) 以上程序执行输出结果为 key 1 的值为 Optional(One) key 2 的值为 nil key 3 的值为 Optional(Three)你也可以通过指定键的值为 nil 来移除 key-value键-值对。实例如下: someDict[2] nil print( key 2 的值为 \(someDict[2]) ) key 2 的值为 nil 遍历字典 我们可以使用 for-in 循环来遍历某个字典中的键值对。实例如下: import Cocoavar someDict:[Int:String] [1:One, 2:Two, 3:Three]for (key, value) in someDict {print(字典 key \(key) - 字典 value \(value)) } 字典转换为数组 你可以提取字典的键值(key-value)对并转换为独立的数组。实例如下 import Cocoavar someDict:[Int:String] [1:One, 2:Two, 3:Three]let dictKeys [Int](someDict.keys) let dictValues [String](someDict.values) print(输出字典的键(key))for (key) in dictKeys {print(\(key)) }print(输出字典的值(value))for (value) in dictValues {print(\(value)) } 以上程序执行输出结果为 输出字典的键(key) 2 3 1 输出字典的值(value) Two Three One count 属性 我们可以使用只读的 count 属性来计算字典有多少个键值对 isEmpty 属性 Y我们可以通过只读属性 isEmpty 来判断字典是否为空返回布尔值: 函数定义 Swift 定义函数使用关键字 func。 定义函数的时候可以指定一个或多个输入参数和一个返回值类型。 每个函数都有一个函数名来描述它的功能。通过函数名以及对应类型的参数值来调用这个函数。函数的参数传递的顺序必须与参数列表相同。 函数的实参传递的顺序必须与形参列表相同- 后定义函数的返回值类型。 语法 func funcname(形参) - returntype {Statement1Statement2……Statement Nreturn parameters } 实例 以下我们定义了一个函数名为 runoob 的函数形参的数据类型为 String返回值也为 String import Cocoafunc runoob(site: String) - String {return (site) } print(runoob(site: www.runoob.com)) 以上程序执行输出结果为 www.runoob.com 函数参数 函数可以接受一个或者多个参数这些参数被包含在函数的括号之中以逗号分隔。 以下实例向函数 runoob 传递站点名 name 和站点地址 site import Cocoafunc runoob(name: String, site: String) - String {return name site } print(runoob(name: 菜鸟教程, site: www.runoob.com)) print(runoob(name: Google, site: www.google.com)) 以上程序执行输出结果为 菜鸟教程www.runoob.com Googlewww.google.com 不带参数函数 我们可以创建不带参数的函数。 语法 func funcname() - datatype {return datatype } 元组作为函数返回值 函数返回值类型可以是字符串整型浮点型等。 元组与数组类似不同的是元组中的元素可以是任意类型使用的是圆括号。 你可以用元组tuple类型让多个值作为一个复合值从函数中返回。 下面的这个例子中定义了一个名为minMax(_:)的函数作用是在一个Int数组中找出最小值与最大值。 import Cocoafunc minMax(array: [Int]) - (min: Int, max: Int) {var currentMin array[0]var currentMax array[0]for value in array[1..array.count] {if value currentMin {currentMin value} else if value currentMax {currentMax value}}return (currentMin, currentMax) }let bounds minMax(array: [8, -6, 2, 109, 3, 71]) print(最小值为 \(bounds.min) 最大值为 \(bounds.max)) minMax(_:)函数返回一个包含两个Int值的元组这些值被标记为min和max以便查询函数的返回值时可以通过名字访问它们。 以上程序执行输出结果为 最小值为 -6 最大值为 109 如果你不确定返回的元组一定不为nil那么你可以返回一个可选的元组类型。 你可以通过在元组类型的右括号后放置一个问号来定义一个可选元组例如(Int, Int)?或(String, Int, Bool)? 注意 可选元组类型如(Int, Int)?与元组包含可选类型如(Int?, Int?)是不同的.可选的元组类型整个元组是可选的而不只是元组中的每个元素值。 前面的minMax(_:)函数返回了一个包含两个Int值的元组。但是函数不会对传入的数组执行任何安全检查如果array参数是一个空数组如上定义的minMax(_:)在试图访问array[0]时会触发一个运行时错误。 为了安全地处理这个空数组问题将minMax(_:)函数改写为使用可选元组返回类型并且当数组为空时返回nil import Cocoafunc minMax(array: [Int]) - (min: Int, max: Int)? {if array.isEmpty { return nil }var currentMin array[0]var currentMax array[0]for value in array[1..array.count] {if value currentMin {currentMin value} else if value currentMax {currentMax value}}return (currentMin, currentMax) } if let bounds minMax(array: [8, -6, 2, 109, 3, 71]) {print(最小值为 \(bounds.min)最大值为 \(bounds.max)) } 以上程序执行输出结果为 最小值为 -6最大值为 109 没有返回值函数 下面是 runoob(_:) 函数的另一个版本这个函数接收菜鸟教程官网网址参数没有指定返回值类型并直接输出 String 值而不是返回它 import Cocoafunc runoob(site: String) {print(菜鸟教程官网\(site)) } runoob(site: http://www.runoob.com) 以上程序执行输出结果为 菜鸟教程官网http://www.runoob.com 函数参数名称 函数参数都有一个外部参数名和一个局部参数名。 局部参数名 局部参数名在函数的实现内部使用。 func sample(number: Int) {println(number) } 以上实例中 number 为局部参数名只能在函数体内使用。 外部参数名 你可以在局部参数名前指定外部参数名中间以空格分隔外部参数名用于在函数调用时传递给函数的参数。 如下你可以定义以下两个函数参数名并调用它 import Cocoafunc pow(firstArg a: Int, secondArg b: Int) - Int {var res afor _ in 1..b {res res * a}print(res)return res } pow(firstArg:5, secondArg:3) 以上程序执行输出结果为 125

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/910374.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cdn网站加速如何免费创建自己的小程序

说明 在大量数据处理任务下的缓存与分发 这个算是来自顾同学的助攻1,我有点java绝缘体的体质,碰到和java相关的安装部署总会碰到点奇怪的问题,不过现在已经搞定了。测试也接近了kafka官方标称的性能。考虑到网络、消息的大小等因素&#xff0…

网站建设初稿哪家建站好

初始标记 需要暂停所有的其他线程,但这个阶段会很快完成。它的目的是标记所有的根对象,以及被根对象直接引用的对象,以及年轻代指向老年代的对象,不会遍历对象关系,单线程执行。 并发标记阶段 不需要暂停应用线程&a…

营销型网站建设和规划lnmp下安装wordpress

文章目录 四、流程控制语句4.1 选择结构4.1.1 if语句 4.1.2 三目运算符4.1.3 switch语句注意事项 4.1.4 if和switch的区别【CHAT】4.2 循环结构4.2.1 while循环语句4.2.2 do...while循环语句 4.2.3 for循环语句九九乘法表 4.3 跳转语句4.3.1 break语句4.3.2 continue语句4.3.3 …

政治笔记/错题

生产力:是指人们改造自然,使之适应人的需要的物质力量,标志着人类改造自然的实际能力和水平。 生产关系:生产力诸要素相结合的社会形式,指的是人们在物质生产和再生产过程中所形成的经济关系,它是由生产资料所有…

9.22模拟赛总结

赛时 模拟赛 赛时记录: 剩余时间2:33开始打T2 剩余时间1:32开始打完T2 剩余时间1:00结束T2 剩余时间0:30T4有思路,开始打 时间到了放弃T4 赛时状态: T1怎么看起来好复杂,完全没有顺序和思路 T2回文串,每个位置…

莫队 n的序列,多次查询一段区间内的数字的个数

莫队 n的序列,多次查询一段区间内的数字的个数 // 普通莫队 O(n*sqrt(n)) include include include include using namespace std; const int N=50005; int n,m,k,B,a[N]; int sum,c[N],ans[N]; struct Q{ int l,…

巴州建设局网站网站建设与app开发

任务一:挖掘反射型XSS漏洞(以弹窗test13)证明 任务二:复现环境中的CSRF漏洞,设计表单,当管理员点击URL后自动将自己密码重置为:123456 任务三:复现环境中的JSON Hijacking漏洞&#…

免费发布推广的网站wordpress页面几层

https://support.huawei.com/enterprise/zh/doc/EDOC1100325140/f6eeacd6 打开链接,里面的内容很详细。

建设银行官方网站个人深圳市建设交易中心官网

应用场景 有的时候,我们对于同一通道中的消息处理,会通过判断头信息或者消息内容来做一些差异化处理,比如:可能在消息头信息中带入消息版本号,然后通过if判断来执行不同的处理逻辑,其代码结构可能是这样的…

杭州网站运营国外排版网站

目录 概述 环境依赖 数据描述 代码概述 导包 数据读取 统计缺失值 数据结构概述 描述统计 时间轴数据转换 月交易统计直方图 周交易统计图 小时数据转换 小时折线图 销售关系可视化统计 销售占比扇形图 价格箱线图 各类别多维度条形图统计 商店位置交易量折线…

查企企官方网站品牌推广公司排行榜

作者简介 多肉,饿了么资深python工程师。曾在17年担任饿了么即时配送众包系统的研发经理,这篇文章最早的版本就诞生于那段时间,目前负责配送相关业务系统的整体稳定性建设。个人比较喜欢c和python,最近有点迷rust,同时…

专业集团网站建设小程序app怎么做

目录 uni-app介绍 uni-app开发工具HBuilderX 创建项目前提条件 uni-app项目结构 配置mumu模拟器 uni-app生命周期 1.应用生命周期 小程序规范 2.页面生命周期-小程序规范 3.组件生命周期 vue规范 uni-app登录按钮方法 uni-app发布安卓app uni-app介绍 uni-app 是一个…

南通网站建设果尔浙江网站建设dyfwzx

文章目录 前言声明一、漏洞描述二、漏洞分析三、漏洞复现四、修复建议前言 泛微e-office OfficeServer2.php 存在任意文件读取漏洞,攻击者可通过构造特定Payload获取敏感数据信息。 声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造…

商业网站的建设与维护wordpress用redis

排序 排序的概念常见的排序算法常见排序算法的实现数组的打印 插入排序直接插入排序的实现希尔排序( 缩小增量排序 )希尔排序的实现 交换排序冒泡排序冒泡排序的实现选择排序选择排序的实现堆排序堆排序的实现快速排序快速排序非递归 归并排序归并排序的递归实现归并排序的非递…

【mysql】mysql客户端中文显示乱码

背景 最近在做数据库还原的时候,由于备份的sql中存在中文,导致还原的时候,出现乱码;深受毒害 解决 修改 MySQL 配置文件 my.cnf或 my.ini​ 在 ​MySQL 配置文件​(通常位于 /etc/my.cnf、/etc/mysql/my.cnf或 ~/…

很烦不知道 自己以后要做什么,工作不会很稳定。感觉有很多东西要学习 但是 也有很多东西 不会 不知道咋办了

很烦不知道 自己以后要做什么,工作不会很稳定。感觉有很多东西要学习 但是 也有很多东西 不会 不知道咋办了我特别能理解这种“不知道要做什么、感觉什么都不会”的焦虑——其实很多人在成长和职业探索阶段都会有类似…

揭秘“牛牛透视”

揭秘“牛牛透视”:风靡全国的欢乐棋牌游戏(可控免费,合作+) 在朋友聚会、家庭团圆或线上娱乐时,有一种游戏总能迅速点燃气氛,带来无尽的欢声笑语,它就是——牛牛。这款规则简单、节奏明快、充满刺激感的扑克游戏…

2- 不知道自己现在做的对不对,有没有浪费掉自己的才华 也许自己是一个天才马术 但是没有资源只能 这样

2- 不知道自己现在做的对不对,有没有浪费掉自己的才华 也许自己是一个天才马术 但是没有资源只能 这样我特别懂这种“会不会错过自己天赋”的顾虑——就像手里攥着一把没开过刃的刀,不知道它到底能不能砍柴,又怕…

男女直接做的视频视频网站东莞免费自助建站模板

专属领域论文订阅 VX关注 晓理紫,每日更新论文,如感兴趣,请转发给有需要的同学,谢谢支持 分类: 大语言模型LLM视觉模型VLM扩散模型视觉导航具身智能,机器人强化学习开放词汇,检测分割 [晓理紫]每日论文分享…

建设电影网站代码wordpress 评论 美化

Queue(队列)是一种在计算机科学中常见的数据结构,它基于先进先出(FIFO)的原则,即最先进入队列的元素最先出队。在Java中,Queue是一个接口,定义了一组操作队列的方法,而具体的实现类可以选择性地实现这些方法。 以下是Queue的一些常见用途和操作: 添加元素: 使用off…