swift-调用函数要加入形参是为什么

问题描述

调用函数要加入形参是为什么

为什么调用函数还要加入形参,哪位大神帮我解释一下

解决方案

http://c.biancheng.net/cpp/html/2265.html

解决方案二:

10和20应该才叫所谓的“形参”

图中编译器要求insert的b:是参数名,swift之后要求调用函数时,除了第一个参数名可以省略,剩下的参数名都需要写明。
一般敲入方法名(函数名)后编译器都会只能提醒,如果没有触发提醒可以按键盘的esc触发提醒

希望楼主采纳,谢谢

解决方案三:

swift里面有这个语法习惯吧?我是学C/C++的,其他语言里很少看到这种强制加形参的行为啊(也许是为了关系表示的更清楚呢)

解决方案四:

这是swift借鉴oc的方法定义而来的,方便开发者调用的时候根据参数名更加精确的传递参数,更加人性化。而swift的方法定义的时候可以根据自己的需求定义是否需要定义外部形参名,用#代表用内部形参名作为外部形参名,swift默认调用方法的时候从第二个参数开始都会会有外部形参名,如果不想在调用的时候有外部形参名,定义方法时用_定义外部形参即可,希望楼主借鉴。

时间: 2024-12-21 12:35:36

swift-调用函数要加入形参是为什么的相关文章

窥探Swift之函数与闭包的应用实例

今天的博客算是比较基础的,还是那句话,基础这东西在什么时候都是最重要的.说到函数,只要是写过程序就肯定知道函数是怎么回事,今天就来讨论一下Swift中的函数的特性以及Swift中的闭包.今天的一些小实例中回类比一下Objective-C中的函数的写法等等.Swift中的函数还是有许多好用的特性的,比如输入参数,使用元组返回多个值, 定义形参名,设定默认参数以及可变参数等等一些好用的特性.而在Swift中的闭包就是Objective-C中的Block, 除了语法不通外,两者的用法是一样的.废话少说

c++问题-c++不可复制对象按值传递调用函数

问题描述 c++不可复制对象按值传递调用函数 class Base{ public: Base(){} private: Base(const Base &b) { cout<<"copytor"<<endl; } }; class CB { public: CB(Base &b):pb(&b){} operator Base&() { return *pb; } private: Base *pb; }; void foo(Ba

声明函数时候,形参为什么有时候用指针对象,有时候使用普通类对象?

问题描述 声明函数时候,形参为什么有时候用指针对象,有时候使用普通类对象?为什么不能像java都使用普通类对象?难道类对象作用不能实现到指针对象功能?比如代码如下: class A{}class B( public: B(A* aaa);//这里为什么不用A aaa去掉指针 //普通类传参有什么区别 B(A aaa);} 解决方案 引用class B( public: B(A* aaa);//这里为什么不用A aaa去掉指针 //普通类传参有什么区别 B(A aaa); } 1.传指针(和引用)

如何通过函数指针调用函数(实现代码)_C 语言

说明:指针可以不但可以指向一个整形,浮点型,字符型,字符串型的变量,也可以指向相应的数组,而且还可以指向一个函数. 一个函数在编译的时候会被分配给一个入口地址.这个函数入口地址称为函数的指针.可以用一个指针变量指向函数,然后通过该指针变量调用此函数. 定义指向函数的指针变量的方法是: 复制代码 代码如下: int (*p) (int ,int ); int[指针变量p指向的函数的类型] (*p)[p是指向函数的指针变量] ( int,int )[p所指向的形参类型]; 与函数的原型进行比较 复制

函数调用-如何调用函数打印出数组

问题描述 如何调用函数打印出数组 我已经编写了函数itob(n,s,d),将整数n转换为以b为底的数,并将转换结果以字符形式保存到字符串s中.请问既然函数的返回值不能是数组,那么如何在main 函数中调用这个itob函数打印出字符串s?(刚入门的新手,很多函数没有学) 解决方案 void main() { char buf[50]; int num=100; itob(num,buf,8);//你设计的函数形参s应该是个指针,这样在函数内部转换完,在main函数就可以打印. printf("%s

《C++覆辙录》——1.4:未能区分函数重载和形参默认值

1.4:未能区分函数重载和形参默认值 函数重载和形参默认值之间其实并无干系.不过,这两个独立的语言特征有时会被混淆,因为它们会模塑出语法上非常相像的函数用法接口.当然,看似一样的接口其背后的抽象意义却大相径庭: class C1 { public: void f1( int arg = 0 ); // ... };``` // ... C1 a; a.f1(0);a.f1();`型别C1的设计者决定给予函数f1()一个形参的默认值.这样一来,C1的使用者就有了两个选择:要么显式地给函数f1()一

Swift调用Objective-C编写的API实例_Swift

互用性是让 Swift 和 Objective-C 相接合的一种特性,使你能够在一种语言编写的文件中使用另一种语言.当你准备开始把 Swift 融入到你的开发流程中时,你应该懂得如何利用互用性来重新定义并提高你写 Cocoa 应用的方案. 互用性很重要的一点就是允许你在写 Swift 代码时使用 Objective-C 的 API 接口.当你导入一个 Objective-C 框架后,你可以使用原生的 Swift 语法实例化它的 Class 并且与之交互. 初始化 为了使用 Swift 实例化 O

for-关于 += 在被调用函数中时的问题。

问题描述 关于 += 在被调用函数中时的问题. int add(int a){int b = 0: b += 1;}int main (void){int a =0;int i = 0;for(i = 0;i<= 5;i++){printf(""%dn""add(a));}return 0;}如果通过循环调用函数的话, b += 1;怎么进行赋值? 解决方案 使用指针或引用都可以达到要求,一般教科书上会使用指针. void add(int *a){ *a =

回车键调用-这个按Enter调用函数的代码为什么在猎豹上不执行?而且在ie上执行的也不正常

问题描述 这个按Enter调用函数的代码为什么在猎豹上不执行?而且在ie上执行的也不正常 <!DOCTYPE html> Document<br> function leyLogin(){<br> if(event.keyCode==13){<br> document.getElementById("input1").click();<br> }<br> }<br> 解决方案 放chrome上执行试试