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

import UIKit

//多返回值函数

func countss(string:
String) -> (vowels:
Int,consonants:
Int,others: Int) {

var vowels =
0, consonants = 0, others =
0

for character
in string {

switch
String(character).lowercaseString {

case
"a", "e", "i",
"o", "u":

++vowels

case
"b", "c",
"d", "f", "g",
"h", "j",
"k", "l", "m",
"n", "p",
"q", "r", "s",
"t", "v",
"w", "x", "y",
"z":

++consonants

default:

++others

}

}

return (vowels, consonants, others)

}

let countsss =
countss("qwertyuiopasdfghj!234")

countsss.consonants

countsss.others

//外部參数名

func join(s1:
String, s2:
String, joiner:
String) -> String {

return s1 + joiner + s2

}

//当你调用这个函数,你传递给函数的三个字符串的目的就不是非常清楚了:

join("hello",
"world", ",")

//为了使这些字符串值的目的更为清晰,为每一个 join
函数參数定义外部參数名称:

func joiners(string s1:
String, toString s2:
String, withJoiner joiner:
String) ->
String {

return s1 + joiner + s2

}

joiners(string:
"hello", toString:
"world", withJoiner: ":")

//外部參数名称速记

func containsCharacter(#string:
String, characterToFind:
Character) ->
Bool {

for character
in string {

if character == characterToFind {

return
true

}

}

return
false

}

containsCharacter(string: "aaabbccc",
"f")

//參数的默认值

func joinerss(string s1:
String, toString s2:
String, withJoiner joiner:
String =
" ") -> String {

return s1 + joiner + s2

}

joinerss(string:
"hello", toString:
"world")

joinerss(string:
"hello", toString:
"world", withJoiner: "-")

//有默认值的外部名称參数

func joinersss(s1:
String, s2:
String, joiner:
String = " ") ->
String {

return s1 + joiner + s2

}

joinersss("hello",
"world")

joinersss("hello",
"world", joiner: ";")

//常量參数和变量參数

//函数參数的默认值都是常量。

试图改变一个函数參数的值会让这个函数体内部产生一个编译时错误。

这意味着您不能错
误地改变參数的值。

//在參数名称前用keyword var
定义变量參数:

func alignRight(var string:
String, countw:
Int, pad: Character) ->
String {

let amountToPad = countw -
count(string)

for
_ in
1...amountToPad {

string =
String(pad) + string

}

return string

}

alignRight("hello",
10,
"-")

//输入-输出參数

//方法的參数都是常量。不能改动;要声明变量必须在參数名前加 var

func swapTwoInts(inout a:
Int,inout b:
Int) {

let temporaryA = a

a = b

b = temporaryA

}

var someInt =
5

var anotherInt =
190

swapTwoInts(&someInt, &anotherInt)

someInt

anotherInt

swfit各种Function表现形式的更多相关文章

  1. 通过百度echarts实现数据图表展示功能

    现在我们在工作中,在开发中都会或多或少的用到图表统计数据显示给用户.通过图表可以很直观的,直接的将数据呈现出来.这里我就介绍说一下利用百度开源的echarts图表技术实现的具体功能. 1.对于不太理解 ...

  2. JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式

    相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...

  3. 【HTML5】嵌入另一张HTML文档、通过插件嵌入内容、嵌入数字表现形式

    1.嵌入另一张HTML文档 iframe 元素允许在现有的HTML文档中嵌入另一张文档.下面代码展示了iframe元素的用法: <!DOCTYPE html> <html lang= ...

  4. easyui里弹窗的两种表现形式

    easyui里弹窗的两种表现形式 博客分类: jQueryEasyUi   1.主JSP页面中描绘弹窗   <div id="centerDiv" data-options= ...

  5. function foo(){}、(function(){})、(function(){}())等函数区别分析

    前面一段时间,看到(function(){}),(function(){}())这些函数就犯晕,不知道它到底是什么意思,为什么函数外要加小括号,函数后要加小括号,加和不加到底有什么区别……一直犯迷糊, ...

  6. [ActionScript 3.0] AS3.0 把图片分析成文本表现形式

    PLP%uffs??1ti4b5I3iI5CMMGGE8Ta8?c8[mm3CF9sLaXZDll6kpjmhGmhE$GONEENhhGl6OWXb9lkNk0kkNpklZW6&bDN0q ...

  7. JavaScript之Function函数深入总结

    整理了JavaScript中函数Function的各种,感觉函数就是一大对象啊,各种知识点都能牵扯进来,不单单是 Function 这个本身原生的引用类型的各种用法,还包含执行环境,作用域,闭包,上下 ...

  8. JavaScript Function 函数深入总结

    整理了JavaScript中函数Function的各种,感觉函数就是一大对象啊,各种知识点都能牵扯进来,不单单是 Function 这个本身原生的引用类型的各种用法,还包含执行环境,作用域,闭包,上下 ...

  9. JS中函数常见的表现形式以及立即执行函数

    函数常见的几种表现形式: 1.一般形式(函数声明): 会进行函数的预解释,函数会进行声明和定义,在函数体前面或则后面都可以进行调用. 2.函数表达式(匿名函数): 会进行函数的预解析,函数会进行声明但 ...

随机推荐

  1. Leetcode 517.超级洗衣机

    超级洗衣机 假设有 n 台超级洗衣机放在同一排上.开始的时候,每台洗衣机内可能有一定量的衣服,也可能是空的. 在每一步操作中,你可以选择任意 m (1 ≤ m ≤ n) 台洗衣机,与此同时将每台洗衣机 ...

  2. 实战小项目之RTMP流媒体演示系统

    项目简介 windows下使用基于Qt对之前的RtmpApp进行封装与应用,单独功能使用线程执行,主要包括以下几个功能: 视频下载 推送文件 推送摄像头数据或者桌面 基于libvlc的播放器 视频下载 ...

  3. [oldboy-django][4python面试]面试前需要熟练掌握的知识点(待更新)

    python基础 - 生成器 - 装饰器 - 迭代器 - 列表生成式 - 引用,传参 - 面向对象,继承 前端Html: - 词法分析 - 作用域 - 语法分析 - this - Jsonp mysq ...

  4. koa2 + webpack 热更新

    网上有很多express+webpack的热更新,但是koa2的很少,这两天研究了一下子,写一个简单的教程. 1.需要的包 webpack:用于构建项目 webpack-dev-middleware: ...

  5. POJ 2983:Is the Information Reliable?(差分约束)

    题目大意:有n个点在一条直线上,有两类关系:P(x,y,v)表示x在y北边v距离处,V(x,y)表示x在y北边至少1距离出,给出一些这样的关系,判断是否有矛盾. 分析: 差分约束模板题,约束条件P:a ...

  6. BZOJ 1192:[HNOI2006]鬼谷子的钱袋(数学)

    鬼谷子的钱袋Description鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政.有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会 ...

  7. 【bzoj1531】[POI2005]Bank notes 多重背包dp

    题目描述 Byteotian Bit Bank (BBB) 拥有一套先进的货币系统,这个系统一共有n种面值的硬币,面值分别为b1, b2,..., bn. 但是每种硬币有数量限制,现在我们想要凑出面值 ...

  8. RS232与TTL

    TTL电平,RS232电平和CMOS电平 不同点:TTL232的0是用0v表示,1是用5V表示.RS232的0是用+3V--+15V表示,1是用-3V---15V表示. 接口一般都用三根线:1:地线: ...

  9. Codeforces Beta Round #95 (Div. 2) C 组合数学

    C. The World is a Theatre time limit per test 2 seconds memory limit per test 256 megabytes input st ...

  10. 洛谷P1175 表达式的转换

    P1175 表达式的转换 44通过 147提交 题目提供者该用户不存在 标签云端 难度提高+/省选- 时空限制1s / 128MB 提交  讨论  题解 最新讨论更多讨论 这题有毒 抄题解棒责五十! ...