当前位置: 首页 > 编程日记 > 正文

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中各种各样居中方法的总结

在开发前端页面的时候&#xff0c;元素的居中是一个永远都绕不开的问题。看似简单的居中二字&#xff0c;其实蕴含着许许多多的情况&#xff0c;对应着很多的处理方法&#xff0c;本文就试图对页面布局中的居中问题进行总结~~ 居中问题分为水平居中和竖直居中两种&#xff1b;而…

iOS 流式播放音频文件

方式一&#xff1a; https://github.com/tumtumtum/StreamingKit 方式二&#xff1a; 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年数字&#xff1a;我的人生在命令行中 (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 游戏存档,直白点就是讲游戏数据本地保存下来

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

4-类和结构体和可选类型

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

android处理url中的特殊字符

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

图的连通性和连通分量_英语,人口,连通性和露营地

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

jQuery源码分析系列:属性操作

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

HDU 5972 Regular Number(ShiftAnd+读入优化)

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid5972 【题目大意】 给出一个字符串&#xff0c;找出其中所有的符合特定模式的子串位置&#xff0c;符合特定模式是指&#xff0c;该子串的长度为n&#xff0c;并且第i个字符需要在给定的字符集合Si中 【题解】 利用Sh…

把握机缘_机缘巧合,蒙太奇训练以及我的朋友如何使自己失业

把握机缘by Wiley Jones通过威利琼斯 机缘巧合&#xff0c;蒙太奇训练以及我的朋友如何使自己失业 (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简单&#xff0c;客户端和服务器的通信模块都是使用标准的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&#xff1a;由于链表不能随机访问&#xff0c;所以很自然的想法是第一遍得到链表长度&#xff0c;然后计算倒数第n个结点的位置&#xff0c;但这样时间复杂度O(n2)&#xff0c;想到用空间换取时间&#xff0c;可以用一个地址数组存储每个结点的地址&#xff0c;然后直接删…

HTML 5中SEO可以用那些代码来做优化

头部代码 1、标题标签(title标签) 在HTML5中标题标签依然存在&#xff0c;其仍然具有不可替代的作用;不过我们看到还有更多的可供搜索引擎识别的代码&#xff0c;我们将改代码的等级微降。 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部分&#xff1a;Termux&#xff0c;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在内存中会占一个字节&#xff0c;可是仅仅针…

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个链接&#xff0c;可以链接到最好的书籍&#xff0c;课程&#xff0c;新闻通讯和工…

Android 第三方图表类 MPChart 的使用

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

C++ STL的sort 函数 以及自定义的比较函数

没什么特别擅长的内容&#xff0c;先做个小笔记好了。在编程时&#xff0c;使用C的标准模板库&#xff08;STL&#xff09;能节约工作量&#xff0c;增加代码的可读性&#xff0c;能灵活运用无疑会提高编程的效率&#xff0c;俗话说&#xff1a;Write less, create more ~ 然后…

7-构造器方法

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

模糊推理 控制 易于实现_代码“易于推理”是什么意思?

模糊推理 控制 易于实现by Preethi Kasireddy通过Preethi Kasireddy 代码“易于推理”是什么意思&#xff1f; (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中的几种统计分布及常用模型

统计学上分布有很多&#xff0c;在R中基本都有描述。因能力有限&#xff0c;我们就挑选几个常用的、比较重要的简单介绍一下每种分布的定义&#xff0c;公式&#xff0c;以及在&#xff32;中的展示。 统计分布每一种分布有四个函数&#xff1a;d――density&#xff08;密度函…

leetcode题解:Construct Binary Tree from Preorder and Inorder Traversal (根据前序和中序遍历构造二叉树)...

题目&#xff1a; Given preorder and inorder traversal of a tree, construct the binary tree. Note:You may assume that duplicates do not exist in the tree. 说明&#xff1a; 1&#xff09;二叉树可空 2&#xff09;思路&#xff1a;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&#xff0c;则需要先转为Doubl…