3集合与函数类型
import UIKit
var str = “Hello, playground”
// 1 数组
// 创建一个空的数组
var arr1 = Int;
arr1.append(6);
// 创建一个特定大小 并且所有数据都被默认的构造方法
// 以下数组有6个5
var arr2 = Array(repeating: 5, count: 6);
// 通过两个数组相加创建一个数组
var arr3 = arr2 + arr1;
// 用数组的字面量构造数组
var arr4 :[String] = [“dog”,“cat”];
// 2访问和修改数组
// 判断是否为空
if arr4.isEmpty {
print(“empty”);
}else{
print(“not empty”);
}
// 访问元素
var cat = arr4[0];
// 插入元素
arr4.insert(“wolf”, at: 0);
// 删除元素
arr4.remove(at: 0);
// 数组遍历
for item in arr4
{
print(item);
}
// 遍历索引和值
for (index,value) in arr4.enumerated(){
print("(index)—(value)");
}
// 3 集合
// 创建一个空的集合
var set1 = Set();
// 4 创建一个空的字典
var dic1 = Int:String;
// 5 函数
// 5.1 无返回值无参数
func sayHi(){
print(“sayHi”);
}
sayHi()
// 5.2 有参数有返回
func getCount(a:Int,b:Int) ->Int
{
return a + b;
}
getCount(a: 5, b: 6);
// 5.3 无参数有返回值
func sayHello()->String
{
return “sayHello”;
}
sayHello()
// 5.4 有参数无返回值
func addCount(a:Int,b:Int)
{
print(a+b);
}
addCount(a: 5, b: 5);
// 5.5 使用元组多重返回值函数
func getMaxValue(array:[Int]) ->(min:Int,max:Int)
{
var tempMin = array[0];
var tempMax = array[0];
for value in array[1..<array.count]{if value < tempMin{tempMin = value;}if value > tempMax {tempMax = value;}
}return (tempMin,tempMax);
}
getMaxValue(array: [12,15,22,13,852,14,5]);
// 6 函数参数标签和参数名称
// 每个函数参数都有一个参数标签( argument label )以及一个参数名称(parameter name)。
// from 是参数标签 place 是参数名称
func helloFromShangHai(name:String,from place:String){
print("(name) is from (place)");
}
helloFromShangHai(name: “alex”, from: “shanghai”);
// 7 参数默认值
// 8 可变参数
// 一个可变参数(variadic parameter)可以接受零个或多个值。函数调用时,你可以用可变参数来指定函数参数可以被传入不确定数量的输入值。通过在变量类型名后面加入(…)的方式来定义可变参数。
// 计算总分数
func addScore(_ scores:Double…){
var total:Double = 0;
for s in scores{total += s;
}print(total);
}
addScore(15,15,15,15,15);
// 9 输入输出参数
// 函数参数默认是常量。试图在函数体中更改参数值将会导致编译错误(compile-time error)。这意味着你不能错误地更改参数值。如果你想要一个函数可以修改参数的值,并且想要在这些修改在函数调用结束后仍然存在,那么就应该把这个参数定义为输入输出参数(In-Out Parameters)。
func changeTwoNumber(_ a: inout Int, _ b:inout Int){
a = a + b;
b = a - b;
a = a - b;
print("(a)—(b)");
}
var a = 5;
var b = 8;
changeTwoNumber(&a, &b);
// 10 函数类型
// 每个函数都有特定的函数类型 函数的类型由函数的参数类型和返回类型组成。
// 参数是Int 返回值是Int 则函数类型是 (Int,Int) -> Int
func addTwoInts(_ a: Int, _ b: Int) -> Int {
return a + b;
}
func multiTwoInts(_ a:Int,_ b:Int) ->Int{
return a * b;
}
// 11 函数类型作为参数类型
// 第一个参数叫 addMath,类型是 (Int, Int) -> Int,在调用此函数的时候你可以传入任何这种类型的函数
// 第二个和第三个参数叫 a 和 b,它们的类型都是 Int,这两个值作为已给出的函数的输入值。
func printAddResult(addMath:(Int,Int)->Int,_ a:Int,_ b:Int){
print(addMath(5, 5));
}
printAddResult(addMath: addTwoInts(:?, 5, 5);
// 12 函数类型作为返回类型
// 根据传入的参数 返回不同的喊出类型
func printChooseResult(flag:Bool) -> (Int,Int)->Int
{
if flag{
return addTwoInts(:?;
}else{
return multiTwoInts(:?;
}
}
// 接收函数
let completeSth = printChooseResult(flag: true);
print(completeSth(5,8));
// 13嵌套函数
// 把函数定义在别的函数体中,称作 嵌套函数(nested functions)。
相关文章:

非凡推崇_2015年值得推崇的25位编码者
非凡推崇by freeCodeCamp通过freeCodeCamp 2015年值得推崇的25位编码者 (25 Coders Worth Following on Twitter in 2015) Our community upvoted the following 25 coders, in no particular order, as “Coders Worth Following in 2015”:我们的社区对以下25位编码员进行了…
CSS中各种各样居中方法的总结
在开发前端页面的时候,元素的居中是一个永远都绕不开的问题。看似简单的居中二字,其实蕴含着许许多多的情况,对应着很多的处理方法,本文就试图对页面布局中的居中问题进行总结~~ 居中问题分为水平居中和竖直居中两种;而…

iOS 流式播放音频文件
方式一: https://github.com/tumtumtum/StreamingKit 方式二: https://github.com/AlexanderYeah/SK_PlayOnWavFileDemo

java 创建 HMAC 签名
ava 创建 HMAC 签名 psd素材 1. []ComputopTest.java package com.javaonly.hmac.test; import java.io.IOException; import java.security.InvalidKeyException; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import …

2014年数字:我的人生在命令行中
by freeCodeCamp通过freeCodeCamp 2014年数字:我的人生在命令行中 (2014 in Numbers: My Life Behind the Command Line) For 2014, I decided to simplify my life. Rather than pursuing a variety of human experiences, as I had previously, I wanted to focu…

c# unity PlayerPrefs 游戏存档,直白点就是讲游戏数据本地保存下来
在游戏会话中储存和访问游戏存档。这个是持久化数据储存,比如保存游戏记录。 我的理解是通过某个特殊的标签来保存在本地,而且该标签为key的意思,初始值不用赋值。 在游戏开发中较为实用。 暂时用到了 SetInt(string key, int value); 还有Ge…

4-类和结构体和可选类型
import UIKit var str “Hello, playground” // 1 枚举语法 // 与 C 和 Objective-C 不同,Swift 的枚举成员在被创建时不会被赋予一个默认的整型值 // 书写方式一 enum sizeType{ case small case middle case large } // 书写方式二 enum sizeNumber { case x,…

android处理url中的特殊字符
java处理url中的特殊字符(如&,%...) URL(Uniform Resoure Locator,统一资源定位器)是Internet中对资源进行统一定位和管理的标志。 一个完整的URL包括如下内容: 应用协议名称,包括http,ftp,file等标志 资源定位…

图的连通性和连通分量_英语,人口,连通性和露营地
图的连通性和连通分量by Evaristo Caraballo通过Evaristo Caraballo 英语,人口,连通性和露营地 (English, Population, Connectivity and Campsites) 在世界范围内推动使用Free Code Camp的因素 (Factors driving the use of Free Code Camp worldwide)…

jQuery源码分析系列:属性操作
属性操作 1.6.1相对1.5.x最大的改进,莫过于对属性.attr()的重写了。在1.6.1中,将.attr()一分为二: .attr()、.prop(),这是一个令人困惑的变更,也是一个破坏性的升级,会直接影响到无数的网站和项目升级到1.6…

HDU 5972 Regular Number(ShiftAnd+读入优化)
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid5972 【题目大意】 给出一个字符串,找出其中所有的符合特定模式的子串位置,符合特定模式是指,该子串的长度为n,并且第i个字符需要在给定的字符集合Si中 【题解】 利用Sh…

把握机缘_机缘巧合,蒙太奇训练以及我的朋友如何使自己失业
把握机缘by Wiley Jones通过威利琼斯 机缘巧合,蒙太奇训练以及我的朋友如何使自己失业 (Serendipity, training montages, and how my friend automated himself out of a job) “No one person’s Hollywood success story has anything in common with anybody e…

Servlet(一)
BS架构的优势 1.数据库之负责数据库的管理 2.Web服务器负责业务逻辑的处理 3.浏览器提供操作界面 4.不需要单独安装客户端 5.开发相对于CS简单,客户端和服务器的通信模块都是使用标准的HTTP协议进行通信 CS架构 1.数据库作为Server,使用数据库特定的编程语言编写业务…

visual webgui theme designer
转载于:https://www.cnblogs.com/jintan/p/3804095.html

51单片机编码自学_这是9个月的自学式编码看起来像什么
51单片机编码自学by Stephen Mayeux斯蒂芬马约(Stephen Mayeux) 这是9个月的自学式编码看起来像什么 (Here’s What 9 Months of Self-Taught Coding Looks Like) 只是划伤表面 (Just Scratching the Surface) Today marks 9 months since I embarked on my journey as a self…

19.Remove Nth Node From End of List
方法1:由于链表不能随机访问,所以很自然的想法是第一遍得到链表长度,然后计算倒数第n个结点的位置,但这样时间复杂度O(n2),想到用空间换取时间,可以用一个地址数组存储每个结点的地址,然后直接删…

HTML 5中SEO可以用那些代码来做优化
头部代码 1、标题标签(title标签) 在HTML5中标题标签依然存在,其仍然具有不可替代的作用;不过我们看到还有更多的可供搜索引擎识别的代码,我们将改代码的等级微降。 2、元标签(meta标签) 字符集编码声明标签 该标签原本就是搜索引擎必看且首先要看的标签…

XCode 导入头文件不提示解决
File --> WorkSpace Settings ---> Build Sysytem ---> Legacy Build System

构建node.js基础镜像_在Android上构建Node.js应用程序
构建node.js基础镜像by Aurlien Giraud通过AurlienGiraud 在Android上构建Node.js应用程序-第1部分:Termux,Vim和Node.js (Building a Node.js application on Android - Part 1: Termux, Vim and Node.js) If you are excited about Node.js and own a…

MyEclipse设置默认的文档注释和背景色设置
转载于:https://www.cnblogs.com/999-/p/6086219.html
C语言之数组中你所不在意的重要知识
#include<stdio.h>void simpleArray();void main() {simpleArray();}//数组的简单操作 void simpleArray() {//数组的声明并赋值int c[5] { 1, 2, 3, 4, 5 };printf("\nC数组内存中占%d个字节",sizeof(c));// /0在内存中会占一个字节,可是仅仅针…

swift 4.0 创建tableview 自定义cell
// // ViewController.swift // AlamofileDemo // // Created by Alex on 2019/3/5. // Copyright © 2019 AlexanderYeah. All rights reserved. //import UIKit import Alamofire// 遵守协议方法 class ViewController: UIViewController,UITableViewDataSource,UITa…

ux体验网站 英国_?? 用户体验(UX)资源和工具的完整列表??
ux体验网站 英国by Jason Hreha杰森赫雷哈(Jason Hreha) ?? 用户体验(UX)资源和工具的完整列表?? (?? The Complete List of User Experience (UX) Resources & Tools ??) 超过100个链接,可以链接到最好的书籍,课程,新闻通讯和工…

Android 第三方图表类 MPChart 的使用
先看看条形图的的效果还不错是吧,实现这样的效果很合适呢! 还有折线图、饼图很多效果 效果不错对吧~ 下面我们就先来看看条形图的实现方法吧! 第一步: 引入第三方包 MPChart 如果你碰巧看过我之前写的Recycleview的博客这就简单多…

C++ STL的sort 函数 以及自定义的比较函数
没什么特别擅长的内容,先做个小笔记好了。在编程时,使用C的标准模板库(STL)能节约工作量,增加代码的可读性,能灵活运用无疑会提高编程的效率,俗话说:Write less, create more ~ 然后…

7-构造器方法
import UIKit// 1 构造器 // 结构体和类在实例的构造过程中会调用一种特殊的方法init,称之为构造器 // 构造器的主要作用是初始化存储属性 // 如果存储属性在构造器中没有初始化 在定义的时候也没有初始化 就会产生编译错误class Employee{let no:Int;var name:Stri…

模糊推理 控制 易于实现_代码“易于推理”是什么意思?
模糊推理 控制 易于实现by Preethi Kasireddy通过Preethi Kasireddy 代码“易于推理”是什么意思? (What does it mean when code is “easy to reason about”?) You’ve probably heard the expression “easy to reason about” enough times to make your ear…
简单介绍一下R中的几种统计分布及常用模型
统计学上分布有很多,在R中基本都有描述。因能力有限,我们就挑选几个常用的、比较重要的简单介绍一下每种分布的定义,公式,以及在R中的展示。 统计分布每一种分布有四个函数:d――density(密度函…

leetcode题解:Construct Binary Tree from Preorder and Inorder Traversal (根据前序和中序遍历构造二叉树)...
题目: Given preorder and inorder traversal of a tree, construct the binary tree. Note:You may assume that duplicates do not exist in the tree. 说明: 1)二叉树可空 2)思路:a、根据前序遍历的特点, 知前序序列…

swift string,Int,Double相互转换
import UIKitvar str "Hello, playground" // 1 字符串转Int Double Float var str1 "818"; // 转Int var val1 Int(str1); // 转Double var val2 Double(str1); // 转float var val3 Float(str1);// 如果是25.0 转 Int,则需要先转为Doubl…