android 中文冒号,Kotlin中双冒号::使用方法
Kotlin 中 双冒号操作符 表示把一个方法当做一个参数,传递到另一个方法中进行使用,通俗的来讲就是引用一个方法。先来看一下例子:
fun main(args: Array) {
println(lock("param1", "param2", ::getResult))
}
/**
* @param str1 参数1
* @param str2 参数2
*/
fun getResult(str1: String, str2: String): String = "result is {$str1 , $str2}"
/**
* @param p1 参数1
* @param p2 参数2
* @param method 方法名称
*/
fun lock(p1: String, p2: String, method: (str1: String, str2: String) -> String): String {
return method(p1, p2)
}
这里需要注意的是,lock 函数 的第三个参数传入 method 时,要确定参数个数、类型、返回值都和其形参一致。
输出结果:
result is {param1 , param2}
如果我们需要调用其他 Class 中的某一个方法是:
写法为:
fun main(args: Array) {
var d = Test()
println(lock("param1", "param2", d::getResult))
}
我们在 Class 中的某个方法中使用双冒号调用当前 Class 的内部方法时调动方式为:
class Test1 {
fun isOdd(x: Int) = x % 2 != 0
fun test() {
var list = listOf(1, 2, 3, 4, 5)
println(list.filter(this::isOdd))
}
}
一般情况,我们调用当前类的方法 this 都是可省略的,这里之所以不可省略的原因是
为了防止作用域混淆 , :: 调用的函数如果是类的成员函数或者是扩展函数,必须使用限定符,比如this
如果把 isOdd 写到 class 外部 (全局) 这里也是可以省略限定符。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。
android 中文冒号,Kotlin中双冒号::使用方法相关推荐
- html中两个冒号,css中双冒号和单冒号区别
:--是指的伪类 ::--是指的伪元素 1.字面意思: 伪类,1.css中有类选择器,某些元素并未定义类名,就可以通过伪类赋予样式,如:[:nth-child(n)]:2.伪类可以应用于元素执行某种状 ...
- Python中双冒号的作用[::]
Python中双冒号的作用[::] Python sequence slice addresses can be written as a[start:end:step] and any of sta ...
- python中双冒号[::]切片的作用
如:a=[1,2,3.4,5] 我们写:print(a[x:y:z])时,x表示切片起点,y表示切片终点,z表示步长.如果不指定x和y,则默认开始和最后(-1倒序除外),如果不指定z,则默认步长为1. ...
- java中双冒号的用法
java中双冒号的使用,即方法引用 构造器调用 Class类::new 特定对象的方法调用 instance::method 类的静态方法调用 Class::static method 任意对象的方法 ...
- html语言中的双冒号,::before 和:after 中双冒号和单冒号有什么区别?解释一下这 2 个伪元素的作用...
标题:::before 和:after 中双冒号和单冒号有什么区别?解释一下这 2 个伪元素的作用? 相关知识点: 单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3伪元素.(伪元素由双冒号和伪 ...
- C++中双冒号::的作用浅析
转载自:https://www.jb51.net/article/142032.htm C++中双冒号::的作用浅析 更新时间:2018年06月14日 11:59:12 作者:yz930618 在 ...
- ::before 和 :after中双冒号和单冒号有什么区别?解释一下这2个伪元素的作用?
::before 和 :after中双冒号和单冒号的区别以及2个伪元素的作用 ::before 和 :after中双冒号和单冒号有什么区别?解释一下这2个伪元素的作用 实例 实例 ::before 和 ...
- php中的冒号应用,php中双冒号的应用
php类代码中常看到"::"的操作符,这个是作用域限定操作符,是用一个双冒号"::"表示,它用来置顶类中不同作用域的级别.左边是作用域右边是访问作用域的成员. ...
- python中双冒号_c++中冒号(:)和双冒号(::)的用法和c/c++ 位域结构体
1.冒号(:)用法 (1)表示结构体内 位域的定义(即该变量占几个bit空间) typedef struct _XXX{ unsigned char a:4; unsigned char c; }XX ...
- php类中双冒号和-的区别
就是为了区分对象的方法和属性,和是访问类的静态方法和静态变量,类的静态方法和静态变量是类公用的,不需要实例化也能访问,而对象的方法和属性是每个对象特有的,因此必须先实例化.其他语言如C++,JAVA等 ...
最新文章
- 给你一些点与线,只用动画就能看懂张量乘法,还能证明迹循环定理
- ACM Computer Factory
- C#中使用DateTimePicker控件显示修改日期时间
- Git与Github操作指南(入门)
- 使用Disruptor实现生产者和消费者模型
- Android中垃圾回收日志信息
- 习题2.4 递增的整数序列链表的插入(15 分)浙大版《数据结构(第2版)》题目集...
- Inno_Setup使用笔记(简单完成安装包制作)
- React开发(173):ant design设置额外的展开行
- 非递归求解N皇后问题(回溯法)
- RAR for Linux 命令详解
- 手把手教你学dsp_大咖问答第13期:如何掌握DSP设计?顾卫钢博士在线为你解答...
- 什么是利亚诺夫指数?Lyapunove指数 李雅普诺夫指数
- 淘宝大秒系统设计详解
- 如何使用CANoe和CANalyzer中的Diagnostics/ISO TP
- python 频数分布,频率分布
- 静听网+python爬虫+多线程+多进程+构建IP代理池
- 过滤器(7)_过滤器处理 POST 请求乱码
- 实验3-5 查询水果价格
- oracle 查看表空间使用情况