函数

发布时间:2015-12-22 SWIFT

函数

目标

  • 掌握函数的定义
  • 掌握外部参数的用处
  • 掌握无返回类型的三种函数定义方式

代码实现

  • 函数的定义
    • 格式 func 函数名(行参列表) -> 返回值 {代码实现}
    • 调用 let result = 函数名(值1, 参数2: 值2...)
func sum(a: Int, b: Int) -> Int {
    return a + b
}

let result = sum(10, b: 20)
  • 没有返回值的函数,一共有三种写法
    • 省略
    • ()
    • Void
func demo(str: String) -> Void {
    print(str)
}
func demo1(str: String) -> () {
    print(str)
}
func demo2(str: String) {
    print(str)
}

demo("hello")
demo1("hello world")
demo2("olleh")
  • 外部参数
    • 在形参名前再增加一个外部参数名,能够方便调用人员更好地理解函数的语义
    • 格式:func 函数名(外部参数名 形式参数名: 形式参数类型) -> 返回值类型 { // 代码实现 }
    • Swift 2.0 中,默认第一个参数名省略
func sum1(num1 a: Int, num2 b: Int) -> Int {
    return a + b
}

sum1(num1: 10, num2: 20)

转载于:https://www.cnblogs.com/MarkusFeng/p/5067954.html

更多相关推荐


2016 var-vs-let 的停火协定

发布时间:2016-04-21 SWIFT
作者:EricaSadun,原文链接,原文日期:2016-01-29译者:walkingway;校对:Cee;定稿:小锅在Swift开源之前,苹果在其语言进化中SE-0003将var形式的函数参数进行了移除,并且模式匹配将正式出现在Swift3.0中。自那以后,Swift社区一遍又一遍地反对这个决定,尤其是那些在case模式匹配以及if/guard/for语句中使用了var的人们。今天,Swift...

[iOS 10 day by day] Day 2:线程竞态检测工具 Thread Sanitizer

发布时间:2016-08-16 移动开发 测试 SWIFT
本文介绍了Xcode8的新出的多线程调试工具ThreadSanitizer,可以在app运行时发现线程竞态。作者用经典的银行存取钱为例子,示例使用这个工具发现线程不安全的问题。《iOS10daybyday》是shinobicontrols公司编写的系列博客,介绍开发者需要了解的iOS10新特性,每周更新。本系列翻译(文集地址)已取得官方授权。仓薯翻译,欢迎指正:)Shinobicontrols为i...

Swift中你应该知道的一些有用的tips

发布时间:2018-01-03 RUNTIME JAVA SWIFT
本文会详细介绍一些Swift中不为大多数人知,又很有用的知识点。您不必一次性看完,不过或许哪一天这些知识就能派上用场,项目Demo在我的github,您可以下载下来亲自实验一番,如果觉得有用还望点个star以示支持。本文主要的知识点有:@noescape和@autoclosure内联lazy属性函数柯里化可变参数dynamic关键字一些特殊的字面量循环标签@noescape和@autoclosur...

Swift 快速学习方法

发布时间:2016-04-21 SWIFT
http://www.jianshu.com/p/1a2c6723065chttp://www.jianshu.com/p/22e2ad531b2fhttp://www.jianshu.com/p/803f03922d35http://www.jianshu.com/p/a12822a30d32http://www.jianshu.com/p/2a8fb66d5a23http://www.jian...

Swift3.0语言教程字符串与URL的数据转换与自由转换

发布时间:2016-11-21 SWIFT
Swift3.0语言教程字符串与URL的数据转换与自由转换Swift3.0语言教程字符串与URL的数据转换Swift3.0语言教程字符串与URL的数据转换与自由转换,字符串中的字符永久保存除了可以保存在文件中外,还可以保存到URL中,保存到URL中可以不用浪费设备的空间,当然也可以将URL中的内容读取出来,并转换为字符串。首先我们来看如何将字符串中的字符写入到URL中,要想实现此功能,需要使用到N...

SwiftUI入门 - 9.List分组-NavigationView基本使用

发布时间:2022-11-24 前端入门 SWIFTUI SWIFTUI开发 SWIFT IOS
置顶菜鸟入门,各位大佬轻喷,如有谬误之处欢迎讨论建议,也欢迎各位道友与我同行“不积跬步,无以至千里;不积小流,无以成江海”继续上文中已经实现了数据每一个TODO项的完成状态切换、创建时间以及滑动删除功能。同时完成一个数据的抽象,即将数据处理的部分抽象到一个对象内,页面中只管调用即可。那么本文中将实现将TODO项分组,已完成的todo和未完成的todo理应分开展示。并且在todo项为空的时候进行提示...

基于swift的词法分析程序

发布时间:2019-08-14 SWIFT XCODE
一、编写环境OSX10.11.6Xcode7.3.1Swift2.2二、大致过程计算正则式:读入正则表达式对正则表达式处理、建图、生成ε-NFA将ε-NFA去除空节点、转化为NFA将NFA转化为DFA对DFA图进行遍历每个节点,获取到每个节点通过某个字符到达哪下一个状态,并找到终态、构造DFA表、输出显示验证字符串:在成功通过正则表达式构建DFA图的基础上,读入任意字符串从字符串第一个字符、DFA...

用swift写了个词法分析程序

发布时间:2019-07-24 SWIFT 分析程序
最近学习编译原理,用swift写了个词法分析程序,和大家一起交流,详细代码和文档移步 计算正则式:1.读入正则表达式2.对正则表达式处理、建图、生成ε-NFA3.将ε-NFA去除空节点、转化为NFA4.将NFA转化为DFA5.对DFA图进行遍历每个节点,获取到每个节点通过某个字符到达哪下一个状态,并找到终态、构造DFA表、输出显示验证字符串:1.在成功通过正则表达式构建DFA图的基础上,读入任意字...

Swift Explore - 关于 Swift 中的 isEqual 的一点探索

发布时间:2015-12-22 移动开发 SWIFT
在我们进行App开发的时候,经常会用到的一个操作就是判断两个对象是否相等。比如两个字符串是否相等。而所谓的相等有着两层含义。一个是值相等,还有一个是引用相等。如果熟悉Objective-C开发的话,就会知道Objective-C为我们提供了一系列isEqual:方法来判断值相等,而==等于号用来判断引用相等。我们来看一个Objective-C的例子就会更加明白了:NSArray*arr1=@[@"...

【iOS】Swift字符串截取方法的改进

发布时间:2016-01-09 SWIFT
字符串截取方法是字符串处理中经常使用的基本方法。熟悉iOS的朋友都知道在基础类的NSString中有substringToIndex:,substringFromIndex:以及substringWithRange:这三种主要的截取方法。问题描写叙述:那么,Swift语言中的String类是否有相同的截取功能呢?重复查看String类的头文件。并没有找到同样或相似的函数接口。直接在swift文件中...

Swift UIFont

发布时间:2018-04-27 SWIFT
 设置字体titleLabel.font=UIFont.systemFont(ofSize:17.0,weight:.heavy) 转载于:https://www.cnblogs.com/jukaiit/p/8962498.html...

Swift 中的闭包与 C 和 Objective-C中的 blocks 以及其它一些编程语言中的 lambdas 比較类似。...

发布时间:2017-08-17 移动开发 内存管理 SWIFT
闭包是功能性自包括模块,能够在代码中被传递和使用。Swift中的闭包与C和Objective-C中的blocks以及其它一些编程语言中的lambdas比較相似。 闭包能够捕获和存储其所在上下文中随意常量和变量的引用。这就是所谓的闭合并包裹着这些常量和变量,俗称闭包。Swift会为您管理在捕获过程中涉及到的内存操作。注意:假设您不熟悉捕获(capturing)这个概念也不用操心。后面会具体对其进行介...

Objective-C 与 Swift混编补充

发布时间:2016-01-05 OBJECTIVE-C SWIFT IOS
今天需要做一个雷达扩散的效果,其实想来挺逗的,当初在酒运达时就有这个需求,当时也是找到了一个Swift的类,看了下教程感觉混编好麻烦,就放弃了.今天找来找去还是只有这一个,其实挺简单的,但是一开始就进入了一个死胡同,所以又特别的无奈,总之一句话,出来混,迟早要还的.搜索OC与Swift混编,文章很多,基本都是翻译自官方的文档,1.必须要做的,修改一个没有空格的工程名;2.也是必须要做的,设置为ye...

SwiftUI——如何使用新的NavigationStack和NavigationSplitView(如何页面跳转2.0以及如何制作侧栏)

发布时间:2022-11-24 SWIFTUI IOS SWIFT SWIFT/SWIFTUI
从iOS16开始,苹果开始弃用原先的NavigationView,以后会逐渐完全淘汰掉。现在开始使用NavigationStack和NavigationSplitView。NavigationStack的效果和原本的NavigationView一样,而NavigationSplitView则和现在iPadOS上的NavigationView效果一样。最近在iPadOS上面使用NavigationV...

《从零开始学Swift》学习笔记(Day 33)——属性观察者

为了监听属性的变化,Swift提供了属性观察者。属性观察者能够监听存储属性的变化,即便变化前后的值相同,它们也能监听到。属性观察者主要有以下两个:willSet:观察者在修改之前调用。didSet:观察者在修改之后立刻调用。属性观察者的语法格式如下:面向对象类型类型名{    ...    var存储属性:属性数据类型=初始化值{    willSet(新值){//定义willSet观察者。“...

《从零开始学Swift》学习笔记(Day 47)——final关键字

发布时间:2017-11-29 SWIFT
在类的定义中使用final关键字声明类、属性、方法和下标。final声明的类不能被继承,final声明的属性、方法和下标不能被重写。下面看一个示例:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051final class Person {//声明为final,说明...

swift指针&内存管理-闭包的循环引用

发布时间:2022-11-24 开发语言 IOS底层原理 SWIFT IOS
swift指针&内存管理-引用无主引用和弱引用类似,无主引用不会牢牢保持引用的实例。但是不像弱应用,无主引用假定是永远有值的当我们去访问一个无主引用的时候,总是假定有值的,所以就可能会发生程序的崩溃如果两个对象的生命周期并不相关,使用weak如果非强引用对象拥有与强引用对象相同或更长的声明周期的话,则应使用无主引用unowned(也就是说两个对象拥有关联—unowned)结果IFLObj1...

swift指针&内存管理-引用

发布时间:2022-11-24 开发语言 IOS底层原理 SWIFT IOS
引用探究首先看一个例子那么这个0x0000000000000003是什么意思呢回到swift源码找到关键核心类型HeapObject就是swift分配内存获取到的结构类型HeapObject第一个8字节为metadata,接下来是宏InlineRefCounts其实就是泛型真正类型InlineRefCountBits至此,通过源码,最终找到了uint6464位的位信息,这64位位信息里,存储了当前...

iOS app版本更新CheckVersion_Swift

发布时间:2019-03-05 COCOAPODS SWIFT JSON
iOSapp版本更新CheckVersion_Swift前言CheckVersion_Swift 是一款轻量级的 Swift 版本的框架,框架功能:根据 Apple 提供的 API 去请求 JSON ,根据 JSON 中的版本号决定是否去更新原生 App。更新提示的内容可以自定义,也可以是 JSON 中给的内容。写作 CheckVersion_Swift 框架初衷通常在做 App 版本检查更新功能...

关于swift里面xml数据的解析设置问题

发布时间:2014-10-14 XCODE THREAD 数据 XML SWIFT
在xcode6.0版本中解析xml数据时,默认会出现Thread错误,但在xcode6.1中运行正常。原因是因为以下的几个属性的设置问题:    parser.shouldProcessNamespaces=true    parser.shouldReportNamespacePrefixes=true    parser.shouldResolveExternalEntities=true...

ReactiveCocoa学习

发布时间:2017-12-25 移动开发 测试 SWIFT
到我写这篇文章为止,ReactiveCocoa版本为5.0.1,搜了很多博客来了解ReactiveCocoa的基础用法,并不是很多,所以这篇文章算是自己对搜索资源的一个汇总,并加入一些自己在学习中遇到的问题和解决.RAC5.0相比于4.0有了巨大的变化,不仅是受swift3.0大升级的影响,RAC对自身项目结构的也进行了大幅度的调整。这个调整就是将RAC拆分为四个库:ReactiveCocoa,R...

第八章 self sizing cell

发布时间:2015-03-02 SWIFT
本项目是《beginningiOS8programmingwithswift》中的项目学习笔记==》全部笔记目录------------------------------------------------------------------------------------------------------------------SelfSizingCell的设置通常有如下三个主要步骤:找...

如何使用 Swift 从 macOS 应用程序中截取屏幕截图

如果您在macOS上构建图像处理应用程序,则在屏幕上截取屏幕截图并将其直接加载到应用程序中是一种直接导入图像的方法。在本文中,我将向您展示如何在您的Swift代码中执行此操作。熟悉屏幕截图应用程序在macOS上,有一个名为Screenshot的本机应用程序。您可以使用它来截取全屏、选定窗口或选定区域。我们将利用这个原生应用程序。运行Screenshot应用程序的CLI,然后选择您需要的命令现在,我...

区块链开发金融交易平台

发布时间:2019-03-01 SWIFT 操作系统 PYTHON
区块链开发金融交易平台 区块链是一种分散的数字分类帐,可以在全球数千台计算机上保存,可以在区块链金融市场交易所交易。这些是以抑制其后续修改的方式注册的。区块链技术以经济高效和透明的方式提高了安全性并加速了信息交换。它还免除了第三方的主要作用是在交易中提供信任和认证要素(如公证人和银行)。区块链开发技术应用在金融交易市场引发的能量是无与伦比的。区块链开发技术的重要性引起了不同部门组织的关注,银行业在...

Swift - 获取状态栏一些信息

发布时间:2017-03-22 SWIFT
 //获取状态栏的各种信息:网络类型,运营商,电池电量,显示的系统时间等信息importUIKitenumNetWorkType{caseNetworkStatesNone//没有网络caseNetworkStates2G//2GcaseNetworkStates3G//3GcaseNetworkStates4G//4GcaseNetworkStatesWIFI//WIFI}classStatus...

Swift - 获取当前系统时间

发布时间:2017-05-31 SWIFT XCODE
 //获取当前系统时间    letdate=NSDate()    lettimeFormatter=NSDateFormatter()    timeFormatter.dateFormat="yyyy-MM-ddHH:mm:ss.SSS"    letstrNowTime=timeFormatter.stringFromDate(date)asString转载于:https://www.cn...

Swift enum(枚举)使用范例

发布时间:2017-01-03 ENUM SWIFT
//:Playground-noun:aplacewherepeoplecanplayimportUIKitvarstr="Hello,playground"enumMovement{caseLeftcaseRightcaseTopcaseBottom}letaMovement=Movement.LeftswitchaMovement{case.Left:print("left")default:...

swift版的GCD封装

发布时间:2015-10-09 SWIFT UI
swift版的GCD封装 说明本人针对swift封装了GCD,包括GCDQueue,GCDGroup,GCDTimer以及GCDSemaphore,使用较为便利. 源码https://github.com/YouXianMing/Swift-GCD////GCDQueue.swift//GCD////http://home.cnblogs.com/u/YouXianMing///https://g...

swift 父视图区域之外的子视图响应消息

发布时间:2015-12-17 SWIFT PYTHON
2019独角兽企业重金招聘Python工程师标准>>>  overridefuncpointInside(point:CGPoint,withEventevent:UIEvent?)->Bool{    ifCGRectContainsPoint(self.bounds,point){      returntrue    }    ifself.leftThumb!=ni...

FFMPEG音频开发: Linux下采集摄像头(使用V4L2框架)数据录制成MP4视频保存到本地

一、环境介绍操作系统介绍:ubuntu18.04FFMPEG版本:4.4.2摄像头: USB摄像头、虚拟机挂载本机自带摄像头二、FFMPEG与X264下载编译X264下载地址: http://www.videolan.org/developers/x264.htmlFFMPEG下载地址: https://ffmpeg.org/download.htmlYasm库的官网下载地址:http://yas...

BasicAuth和OAuth

发布时间:2017-03-18 RUBY JAVA SWIFT
参考资料百度百科BasicAuth维基百科OAuthBasicAuth基本授权BasicAuth又叫HttpAuth,它非常简单。例如你访问一个页面时,会弹出用户名密码框它的优点是:简单,只要维护好用户名密码的安全性即可访问使用BasicAuth的页面时,可以很简单的填写用户名和密码。许多开源HTTP请求库都提供BasicAuth的接口。下面以Python中的requests库为例:request...

《从零开始学Swift》学习笔记(Day 57)——Swift编码规范之注释规范:

发布时间:2017-11-14 SWIFT XCODE
前面说到Swift注释的语法有两种:单行注释(//)和多行注释(/*...*/)。这里来介绍一下他们的使用规范。 文件注释   文件注释就在每一个文件开头添加注释,文件注释通常包括如下信息:版权信息、文件名、所在模块、作者信息、历史版本信息、文件内容和作用等。 下面看一个文件注释的示例:123456789101112/*Copyright (C) 2015 EorientInc. All Righ...

OpenStack案例研究:Binario云

发布时间:2022-11-16 开发语言 OPENSTACK SWIFT IOS
从巴拿马联邦政府到里约热内卢州立法议会,BinarioCloud正在以尽可能低的成本提供满足客户需求所需的平台和基础设施以及技术和服务。了解他们如何使用OpenStack创建不同的云环境。Q:公司在哪一年推出了第一个OpenStack部署?A:2017年。Q:OpenStack如何改变了你的组织?A:BinarioCloud因OpenStack而存在。我们最初的团队通过在圣保罗大学部署云来处理开源...

利用UICollectionView实现列表和宫格视图的切换

发布时间:2018-02-24 SWIFT
很多时候我们需要列表和宫格视图的来回切换,就像苹果的天气应用一样,我之前见过一个用tableview和collectionview来实现这种效果的,我本人不太喜欢这个,那么有没有更好的方法呢?答案是:有初识UICollectionViewUICollectionView是一个比UITableView更灵活强大的控件。其他怎么使用这个控件这里不讲述,这里只说列表和宫格的切换。我们查看UICollec...

swift代码生成navigationController

发布时间:2014-08-10 IOS笔记 SWIFT IOS开发
关键代码 funcapplication(application:UIApplication!,didFinishLaunchingWithOptionslaunchOptions:NSDictionary!)->Bool{             letrvc:ViewController=ViewController()    letnav=UINavigationController(...

Swift - 炫酷放射弹出按钮菜单(改造自AwesomeMenu)

发布时间:2015-09-25 移动开发 SWIFT
这个是一个第三方按钮菜单组件,原版是使用Objective-C编写的名为AwesomeMenu的组件,地址是:https://github.com/levey/AwesomeMenu这里改造成了Swift版,效果图如下:     使用代码:12345678910111213141516171819202122232425262728293031323334353637383940414243444...

WWDC 2015大会十大看点总结:Swift要开源了

发布时间:2015-06-08 移动开发 WWDC SWIFT
一年一度的WWDC苹果开发者大会如期而至,无数人或是在现场,或是通过视频直播观看了这场开发者盛会。对于那些错过直播的同学,InfoQ第一时间总结了本次大会的十大热点,希望读者喜欢。\\一、数据:千亿下载\\本次WWDC开发者大会是第26次举办,出席者来自70个国家。本次大会设置了100+的session环节和150+的labs环节,有超过1000名苹果工程师在现场同开发者交流。\\OSX10.10...

[绍棠] 16进制字符串互转Data

发布时间:2019-12-06 SWIFT
代码extensionData{publicinit(hex:String){self.init(bytes:Array<UInt8>(hex:hex))}publicvarbytes:Array<UInt8>{returnArray(self)}publicfunctoHexString()->String{returnbytes.toHexString()}}ex...

swift 学习小笔记之控件

发布时间:2016-12-06 UIBUTTON UI控件 控件 SWIFT IOS
1.UIButton1>增加addtarget事件//不传递触摸对象(即点击的按钮)button.addTarget(self,action:#selector(tapped),for:.touchUpInside)functapped(){print("tapped")}//传递触摸对象(即点击的按钮),需要在定义action参数时,方法名称后面带上冒号button.addTarget(s...

机器如何“猜你喜欢”?深度学习模型在1688的应用实践 ...

发布时间:2019-02-20 VIEWUI 前端 SWIFT 人工智能
小叽导语:本文主要介绍了Wide&Deep、PNN、DeepFM三个模型以及1688CBU事业部的顾海倩同学提出的Wide&Resnet模型结构,并尝试在1688猜你喜欢的真实数据场景中进行应用。文内有一些实验结果,也提出了一些遇到的问题,希望能与大家一起分享讨论。一、背景猜你喜欢是推荐领域极其经典的一个场景,在1688首页无线端猜你喜欢栏目日曝光约23w,其中约72%的用户会产生...

机器如何“猜你喜欢”?深度学习模型在1688的应用实践

发布时间:2018-09-06 VIEWUI 前端 SWIFT 人工智能
一、背景猜你喜欢是推荐领域极其经典的一个场景,在1688首页无线端猜你喜欢栏目日曝光约23w,其中约72%的用户会产生点击行为,人均点击约8次。在我们的场景中,这部分是一个相对较大的流量来源。我们算法要做的就是通过用户的真实行为数据,预测用户最可能感兴趣的商品进行展示,以提高点击率,从而提高购买量。不同于搜索,这种用户带有明确目的的行为,猜你喜欢是在用户没有明确目的时让用户“逛起来”,挖掘用户的潜...

机器如何“猜你喜欢”?深度学习模型在1688的应用实践

发布时间:2019-02-20 VIEWUI 前端 SWIFT 人工智能
小叽导语:本文主要介绍了Wide&Deep、PNN、DeepFM三个模型以及1688CBU事业部的顾海倩同学提出的Wide&Resnet模型结构,并尝试在1688猜你喜欢的真实数据场景中进行应用。文内有一些实验结果,也提出了一些遇到的问题,希望能与大家一起分享讨论。一、背景猜你喜欢是推荐领域极其经典的一个场景,在1688首页无线端猜你喜欢栏目日曝光约23w,其中约72%的用户会产生...

Swift Anagram 检查器(字符串-字谜检查器:两个小写字符串如何比较他们包含的字符种类和数量是否相同?)

发布时间:2022-10-28 IOS开发-SWIFT OBJECTIVE-C SWIFT IOS
SwiftAnagram检查器(字符串-字谜检查器)字谜检查器怎么检查两个顺序无所谓(不同)的字符串,它们的内容是否都包含相同的字符?举例说明:两个小写字符串str1和str2比较他们包含的字符种类和数量是否相同?如输入“abc”,“cba”输出YES如输入“abcc”,“cbca”输出YES如输入“abcc”,“abc”输出NO如输入“abc”,“abd”输出NO如输入“abccc”,“abbc...

可选项本质

发布时间:2021-05-04 SWIFT
varnum:Optional<Int>=nilvarnum1:Int?=nilnum?+=2num1?+=3其实这两个变量num和num1本质是一样的,都是Int类型的可选项然后点进Optional官方也是提供的这两种方式,只是它解释用的转换符,因为字符串转换Int并不一定成功,所以会返回一个可选项,再看声明是一个泛型枚举枚举有两个case,一个some一个noneenumOptio...

支持图片自动裁剪(CDN)-WebImageView

发布时间:2022-09-21 开发语言 SWIFT 项目优化升级 IOS
背景客户端往往存在大量需要显示网络图片的场景,如果内容服务器不经过处理,直接下发原始图片给客户端,会造成严重的网络资源和内存资源的浪费,还会影响性能,造成卡顿,尤其是在瀑布流中。假设模板封面图片是4K图片,原始大小30M。内容服务器可能分发几百上千个模板给客户端,客户端在模板列表中展示时,会耗费巨量流量,内存也会极度膨胀,可想而知这会带来怎样一种灾难。所以最优的做法是,内容服务器只下发合适大小的图...

程序员跳槽前 “必须“ 了解的事

跳槽前一定要清楚此时自己面临的瓶颈是什么,如果换一家公司是否能解决?不要看了些鸡汤,就马上找老板谈加工资。不要因为薪资待遇差而慢待自己工作,要通过工作快速提高自己,不要耽误自己的时间。经常从工作中做总结,输出为博客,这是一个思考的过程,能提高自己的专业素养,也是建立个人品牌的过程。沟通能力是不可或缺的综合素养的一部分,综合能力固然重要,切记不要忘了自己的专业知识,如果这个平台突然没了,去另外一个平...