Python中双冒号作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中双冒号作用相关的知识,希望对你有一定的参考价值。

参考技术A Python sequence slice addresses can be written as  a[start:end:step]  and  any of start, stop or end can be dropped .

Python序列切片地址可以写为  [开始:结束:步长],其中的开始和结束可以省略

 1.   range(n)生成[0,n)区间整数

  2.  开始start省略时,默认从第0项开始

  3.  结尾省略的时候,默认到数组最后。

  4.  开始和结尾不省略的时候

  5.  步长step=n;代表从start开始(start也算)每隔step间隔,取一个数,一直到结尾end

  6.  当step等于负数的时候,从右向左取数。

Kotlin学习之双冒号

Kotlin学习之双冒号

最新在复习kotlin相关的知识,看到一个平时不注意的点,就是::的使用,平时开发使用都是IDE提示,顺手一改,今天复习看到了这个知识点,就顺手复习记录一下

::定义

Kotlin 中 双冒号操作符 表示把一个方法当做一个参数 ,传递到另一个方法中进行使用,通俗的来讲就是引用一个方法。先来看一下例子:

object KotlinLearn 
   @JvmStatic
   fun main(args: Array<String>) 
       val testInstance = Test()
       print(lock("a","m", ::getResult))
       print(lock("a","m", testInstance::test))
   
   
   fun getResult(str1: String, str2: String): String = "result is $str1 , $str2"
   fun lock(p1: String, p2: String, method: (str1: String, str2: String) -> String): String 
       return method(p1, p2)
   
   fun lock(p1: String, p2: String, method: () -> Boolean): String 
       return if (method()) "false" else "true"
   

   /**
    * 另外一个类
    */
   class Test
       fun test():Boolean
           print("测试::")
           return  false
       
   

fun lock(p1: String, p2: String, method: (str1: String, str2: String) -> String): String
return method(p1, p2)

fun lock(p1: String, p2: String, method: () -> Boolean): String
return if (method()) “false” else “true”

这两个方法分别需要一个lamda表达式,一个是两参数String,并且返回String的,一个是无参函数,返回boolean类型的。
这样,这两个函数就可以以::形式传参 并传入我们的getResult 和 test函数。

这里有一点需要注意的就是,如果在同一个类里的方法,可以直接::method,但是如果在另一个类里面,就需要另一个类的实例::method 了。

a::method 和 a.method 一样吗

首先,肯定不一样的,但是在学习过程中我以为是一样的,所以走了弯路,比如代码这么写的时候

if (testInstance::test)
            print(true)
        

我以为会和普通方法调用一样

if (testInstance.test())
            print(true)
        

但其实根本不一样 啊,所以看一下定义
Kotlin 中 双冒号操作符 表示把一个方法当做一个参数 ,传递到另一个方法中进行使用,通俗的来讲就是引用一个方法
这种写法只是一个参数。需要传递到另一个方法中使用,所以千万不要混淆~~

特此记录。

以上是关于Python中双冒号作用的主要内容,如果未能解决你的问题,请参考以下文章

numpy中双冒号的作用

php中双冒号::的用法

Java 8中双冒号(::)中未处理的异常[重复]

C语言中双感叹号的作用

JavaScript中双叹号(!!)作用示例介绍

冒号在C语言中起啥作用