kotlin中访问封闭作用内的变量

在java中,匿名对象访问封闭作用域内的变量,需要用final 声明变量在java8中,如果只是使用封闭作用域内的变量,该变量并不需要使用final,但是一旦修改值,就需要使用final 来声明变量.

fun main(arg: Array<String>) {
    var n = 2
    progress(object :MyClass(){
        override fun test() {
            if (n==2){
                println("success")
                n=3//可以修改值
                print(n)
            }else{
                print("err")
            }

        }
    })
}

open class MyClass {
    open fun test() {

    }
}

fun progress(obj: MyClass) {
    obj.test()
}

原文地址:https://www.cnblogs.com/loaderman/p/10142142.html

时间: 2024-10-06 00:31:09

kotlin中访问封闭作用内的变量的相关文章

自定义nginx访问日志和内置变量使用

自定义nginx访问日志和内置变量使用 安装第三方echo模块后查看内置变量 内置变量 1.$args 用户在浏览器中查找的相关参数(uri中?之后的字段)2.$document_root 站点根目录所在的位置3.$document_uri 去除url中域名部分后所剩下的目录4.$host 所访问的主机5.$http_user_agent 客户端所使用的浏览器6.$http_cookie 客户端的cookie信息7.$limit_rate 客户端的下载速率0表示不限制速度 server { se

关于“在本类中访问本类私有静态变量”的一点疑惑解析

关于"在本类中访问本类私有静态变量"的一点疑惑解析 代码如下: public class StaticVar { private static int x = 100; public static void main(String[] args) { StaticVar var1 = new StaticVar(); var1.x++; StaticVar var2 = new StaticVar(); var2.x++; StaticVar.x++; System.out.print

jmeter常用的内置变量

1. vars   API:http://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterVariables.html vars.get(""); vars.put("",XXX); 2. log log.info("xxx"); 3.ctx   API:http://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterContex

【转载】如何在 C#中访问 JavaScript函数?

如何在 C#中访问 JavaScript函数? 时间:13-10-17 栏目:Unity3D教程 作者:zqcyou 评论:0 如何在 C#中访问 JavaScript函数?答案如下:c#代码中执行 javaScript函数: 方法一:1. 1 Page.RegisterStartupScript("ggg","<script>SetVisible(1);</script>"); 方法二:使用 Literal类,然后 1 2 3 4 5 6

php中在局部作用域内访问全局变量

php中,由于作用域的限制,导致变量的访问限制: 1.局部作用域内不能访问全局变量 2.全局作用域内不能访问局部变量 对于第一种情况,如下代码将不能正常运行: <?php //局部作用域(函数内)使用全局变量 $a = 1;//在全局作用域内的变量 function test() { echo "a = {$a}<br />";//在局部作用域中访问全局作用域变量 } test(); /* 运行结果: Notice: Undefined variable: a in

在拷贝构造函数中为什么可以访问引用对象的私有变量? [问题点数:0分]

在拷贝构造函数中为什么可以访问引用对象的私有变量? 例如: class Point { public:         Point(int xx=0,int yy=0){X=xx;Y=yy;}         Point(Point &p); private:         int X,Y; }; Point::Point(Point &p) {         X=p.X;         Y=p.Y; } 更多 0 分享到: 相关主题推荐: 对象 class yy x 相关帖子推荐:

Kotlin中变量不同于Java: var 对val(KAD 02)

原文标题:Variables in Kotlin, differences with Java. var vs val (KAD 02) 作者:Antonio Leiva 时间:Nov 28, 2016 原文链接:http://antonioleiva.com/variables-kotlin/ Kotlin系列课程的第二课:Kotlin中变量不同于Java: var 对val. 在这第二章节中,我们将了解Kotlin中变量是怎样工作的,什么是val和var,什么时间使用它们. 我从这开始,是因

Perl中的特殊内置变量详解

#!/usr/bin/perl -w @array = qw(a b c d); foreach (@array) { print $_," "; } 例子的作用就是定义一个数组并把其中的元素打印出来,这里需要注意的是foreach循环部分,foreach循环的标准格式应该是: foreach $element (@array){ ...... } 其中数组@array将其中的元素依次赋值给$element,但是在上面那个程序中,我并没有这样做,在程序中,我就使用到了perl中内置的一

GCD2 :在Block Object中访问变量

问题: 你想要理解在 Objective-C 方法和在 Block Objects 中访问变量的区别 方案: 这儿简单总结一下关于 Block Objects 变量你需要知道的内容: 1.局部变量在 Block Objects 和 Objective-C 方法中的工作原理非常相似. 2.对于内联Block Objects,局部变量不仅包含Block内部定义的变量,并且包含在Block Objects 执行方法中定义的变量.(随后会有举例) 3.在 Objective-C 类中运行的独立 Bloc