首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

可以source脚本情况下将变量从Bash脚本导出到环境中

echo $VAR 有没有一种方法可以通过只执行 export.bash 而 source 它获取 $VAR? 答: 不可以。 但是有几种可能解决办法。...调用 shell 上下文中执行脚本: $ cat set-vars1.sh export FOO=BAR $ . set-vars1.sh $ echo $FOO BAR 另一种方法是脚本中打印设置环境变量命令.../set-vars2.sh)" $ echo "$FOO" BAR 终端上执行 help export 可以查看 Bash 内置命令 export 帮助文档: # help export export...-f 指 shell 函数 -n 从每个(变量)名称中删除 export 属性 -p 显示所有导出变量和函数列表 ---- 参考: stackoverflow question 16618071...help eval 相关阅读: 和不用export定义变量区别 shell编程中$(cmd) 和 `cmd` 之间有什么区别 ----

13320

【翻译】Kotlin致简代码之路

Kotlin 可以帮我们做到这点?不行,因为这些规则是无关于语言。这仍然取决于开发者自己来创建函数。 然而,使用 Java 有时候很难写出小而富有表达力函数。让来举个例子。...不可变引用 Kotlin 中,我们应该一直使用 val 关键字来定义一个变量。这会创建一个可变变量。 Java 中,我们不得不额外添加 final 这个关键字(再次出现语法噪点!)。...注意 Kotlin 集合并不是不可变因为它是基于 Java 可变集合,这是迫于互操作性原因。不过在实践中,大部分情况下这已经足够好了。...此外,如果仅有一个参数的话,我们可以省略 lambda 中参数定义。这种情况下,我们可以 it 代替这个参数。也只有在这种情况下, it 所表示引用含义很明显。...不可变数据类 Kotlin 中使用 data class 能够非常容易地创建可变数据类。实际上,这是 Kotlin一个杀手级特性。

1.4K30
您找到你想要的搜索结果了吗?
是的
没有找到

Kotlin 学习笔记(三)

作用域函数Kotlin 内置,可对数据做一系列操作、变换函数,与集合操作符类似,作用域函数不仅仅可被集合对象调用,它们还可以被所有对象调用。让我们来看看它们用法。...函数名本来不能为纯数字或空格符,但是加上反引号就可以了!神奇!那么这有啥?还记得 Kotlin internal 访问修饰符?它限定了被它修饰函数只能在当前模块使用,而不能在其他模块使用。...最后,这种反引号用法推荐使用!了解即可! 4. Kotlin 对象比较 Java 中,要比较两个对象是否相等,通常用是 == 或 equals 方法。...Kotlin 常量变量 根据笔记一中内容,我们知道,Kotlin 有两种变量,一种是 val 关键字修饰可变变量;另一种是 var 关键字修饰可变变量。...理解就是,Kotlin 中用 const 修饰常量类似于 Java 中一个可变静态变量。

53210

Kotlin实战【一】Kotlin定义与目的

我们来举个栗子: 创建一个Person类来表示一个“人”,创建一个“人”集合,查找其中年纪最大的人,并打印结果。...这些语言允许你定义可以存储任何数据类型变量,或者返回任何数据类型函数,并在运行时才解析方法和字段引用。这会减少代码量并增加创建数据结构灵活性。...- 不可变性——使用不可变对象,这保证了它们状态在其创建之后不能再变化。 - 无副作用——使用是纯函数。...lambda 表达式,让你最少样板代码方便地传递代码块 数据类,提供了创建可变值对象简明语法 标准库中包括了丰富 API 集合,让你函数式编程风格操作对象和集合 Kotlin 允许你使用函数式编程风格但并没有强制你使用它...当你需要时候,可以使用可变数据,也可以编写带副作用函数,而且不需要跳过任何多余步骤。然后,毫无疑问是, Kotlin 中使用基于接口和类层次结构库就像 Java 一样简单。

90430

Kotlin 初体验:主要特征与应用

这个例子定义了一个 Person 类来表示“人”,创建一个“人”集合,查找其中年纪最大的人,并打印结果。尽管这是非常小一段代码,从中也可以看到 Kotlin 许多有趣特性。...不可变性——使用不可变对象,这保证了它们状态在其创建之后不能再变化。 无副作用——使用是纯函数。此类函数输入相同时会产生同样结果,并且不会修改其他对象状态,也不会和外面的世界交互。...函数式编程风格代码带来第二个好处是多线程安全。多线程程序中最大错误来源之一就是,没有采用适当同步机制情况下不同线程上修改同一份数据。...lambda 表达式,让你最少样板代码方便地传递代码块 数据类,提供了创建可变值对象简明语法 标准库中包括了丰富 API 集合,让你函数式编程风格操作对象和集合 Kotlin 允许你使用函数式编程风格但并没有强制你使用它...当你需要时候, 可以使用可变数据,也可以编写带副作用函数,而且不需要跳过任何多余步骤。然后,毫无疑问是, Kotlin 中使用基于接口和类层次结构库就像Java 一样简 单。

82530

Kotlin与Java异同(一)

Android上它也可以工作,这得益于紧凑运行时、对Android API 特殊编译器支持以及丰富库,为常见Android开发任务提供了Kotlin 友好函数。...2.函数式编程: 头等函数:把函数(一小段行为)当作值使用,可以变量保存它,把它当作参数传递,或者当作其他函数返回值。 不可变性:使用不可变对象,这保证了它们状态在其创建之后不能再变化。...} 关键字 fun 用来声明一个函数。 参数类型写在它名称后面。 函数可以定义文件最外层,不需要把它放在类中。 数组就是类。...默认情况下,应该尽可能地使用 val 关键字 来声明所有的 Kotlin 变量,仅在必要时候换成var。使用不可变引用、不可变对象及无副作用函数让代码更接近函数式编程风格。...命名参数 Kotlin: 假设现在有一个函数,它作用是集合元素中添加分割符号,然后将集合转化为字符串。

1.7K20

介绍Kotlin第二部分(翻译篇)

为您提供了方法来创建collections,在这儿列出了不可变可变版本List,Set和Map。...Kotlin系列编程除了默认不变性外,还来自于Kotlin stdlib扩展功能。如果您熟悉函数式编程,那么您将熟悉大部分功能。它们是一组辅助函数和更高级辅助函数可以为您集合提供常用操作。...下一个例子进一步说明,甚至可以省略参数定义。Kotlin中,默认情况下一个参数lambdas会接收到一个名为it参数名。没有必要去命名它。...它们代码中也很明显,并使得高阶函数使用变得简单。关于Kotlin和lambdas最好部分是类型推断,当类型匹配时,它就在你代码下面出现一条红色线。...Apply是另一个时髦扩展功能,我们可以很多情况下使用它,一个常见用法就是创建一个需要许多调用对象,但是没有很好方法来做到这一点。

95040

Kotlin Maps:五个基本函数

因此,熟悉它们是学习一门新语言必要步骤。 Kotlin对开箱即用maps提供全面支持。首先,您可以本地使用Java 集合框架,这是业内最知名且久经考验框架之一。...此外,Kotlin 添加了一些额外功能,使maps使用起来更加方便。 在这篇文章中,谈论是maps基础知识。将向您展示处理maps时最常用函数。...Kotlin 中maps用途 使用maps之前了解什么是maps。本质上,映射是键值对集合。关键是标识符。您可以使用它来查找集合特定元素。该值是您要存储数据,它与一个键相关联。...本质上,映射是键值对集合。 数据类型实现是?数据结构。maps主要实现有两种: ?哈希表:它使用哈希函数来计算每个键索引。这些对基于该索引进入一个桶数组。...但是,您应该知道大多数默认构造函数都会创建哈希表(例如 Java 中?LinkedHashMap)。 支持 Kotlin Maps 不变性 有趣是,Kotlin 中maps标准接口是不可变

2.3K10

Kotlin 学习笔记(二)

这 3 种都是 集合接口,这些都和 Java 中一样。 Kotlin 集合可以根据是否可变分为两大类:可变集合 和 不可变集合。...不可变集合就是集合元素是不可以被修改,没有 add、remove 等写操作方法。...当然,如果在声明时候就知道集合元素,就可以使用这些函数进行初始化: // code 8 val list = listOf("a", "b", "c", "d") // 不可变集合声明 val...mutableMap = mutableMapOf("name" to "Tom", "age" to "99") // 可变集合声明 创建集合函数比较少,分别是 emptyList(...而且创建出来都是只读类型集合,又不能往里面放元素,所以少。 较多的当然还是构造函数,以 List 作为说明,Set 和 Map 以此类推。

60410

Bruce Eckel:最喜欢Python,Kotlin或将取代Java(附演讲全文+PPT)

大家可以发现,Kotlin这种语言它是有修饰函数,然后它标识符是fun这个函数后面,后面会紧跟着一个冒号。...现在我们看到这个是val,这种是不可变标识符。另外一种var是可变标识符,我们可以对它进行重新赋值。大多数情况下,我们会使用val这种不可变变量,这也是函数类编程一个基础思想。...接下来这边又是有一个运算符重载,就是“+=”,这个时候我们把color这个数组切割,让它从第3到第5这样序列三个字符,然后加到mSet这个可变集合当中。...接下来给大家展示是如何能够确认一个词语是一个集合当中,有两种方法,一种是in,或者是“.contains”这种方法能够确认。...当然,现在情况发生了一点改变,觉得Kotlin是一门非常好语言,所以现在Kotlin第二喜欢已经可以想像出来一个画面,Kotlin写一些项目,但是目前只是一个想象东西。

1.6K40

Kotlin | 6.Kotlin 类型系统

// 代码清单6.21 创建一个包含可空值集合 // 从一个文件中读取文本行列表,并尝试把每一行文本解析成一个数字 fun readNumbers(reader...* 一般规则是代码任何地方都应该使用只读接口,只代码需要修改集合地方使用可变接口变体。.../**-------------------- 6.3.3 Kotlin集合和Java ----------------------*/ /* * 集合创建函数...而 Unit 类比于void 不会正常终止函数使用 Nothing 类型作为返回类型。 Kotlin 使用标准 Java 集合类,并通过区分只读和可变集合来增强它们。...当你 Kotlin 中继承 Java 类或者实现 Java 接口时,你需要仔细考虑参数可空性和可变性。 KotlinArray 类就像普通泛型类 但它会被编译成 Java 数组。

2.3K10

Kotlin 开发中遇到坑(持续更新)

方法: 3.1、 val 而不是 var Kotlin 中 val 代表只读,var 代表可变。建议尽可能多使用 val。val 是线程安全,并且不需要担心 null 问题。...只需要注意 val 某些情况下也是可变就行了。对于普通变量来说,不可变( immutable )和只读( read-only )之间没什么区别。...这种情况下建议不要自定义 val 属性 getter 方法。...4、Gson与Kotlin碰撞出不安全操作 4.1、使用 data class 没有设置无参构造函数 Kotlin 中,不需要自己动手去写一个 JavaBean,可以直接使用 DataClass,...那么是什么原因导致呢? 原因是:Person在被转Java代码时,只会生成一个包含两个参数构造方法,没有提供默认构造方法。Gson通过反射创建对象时,会优先尝试获取无参构造函数

4.3K02

kotlin基本语法

java各种痛点而产生,利用kotlin可以大大减少开发过程中代码量编写,有一套几乎可以杜绝空指针机制,kotlin没有分号 二、如何运行Kotlin代码 郭霖大神这本第三行代码是...AS里面运行,当然我们也可以idea运行,eclipse应该也可以多安装一个kotlin插件就ok,生成后缀为ktkotlin文件,利用以下简单代码段即可编写第一个程序,与java函数很像,不过代码更加简洁...类与对象 类和java中差不多,就是不用加new关键字了 继承与构造函数 java里面默认继承object类,而kotlin则默认继承,需要加上open关键字才可以,继承只需要加上...数据类 :class前面加个data即可 单例类:创建类时使用object关键词 六、Lambda 编程 集合创建以及使用 Set 不存放重复元素,map可以利用类似数组下标进行赋值...,list可以简化赋值 集合函数式API lambda表达式基本语法结构 {参数名1:参数类型,参数名2:参数类型 -> 函数体} 最后一行代码作为函数返回值 Java函数式API

56630

Better Kotlin

当我第一次使用 Kotlin 时候,以为val 和 var 区别在于val 代表不可变,而 var 代表是可变。但事实比这更加微妙:val 代表不可变,val 意味着只读。。...这种情况下建议不要自定义 val 属性 getter 方法。...这里一定要注意,如果你只是这样声明了一个object,Kotlin认为你是需要一个静态内部类。而如果你一个变量去接收object表达式,Kotlin认为你需要一个匿名内部类对象。...我们前面说了,一些明知是只读不可写不可变变量,我们尽可能地 val 去修饰它。而 lateinit 仅仅能修饰 var 变量,所以 by lazy 懒加载,是时候表演真正技术了。...而我们 ViewModel 中使用 Java 代码,由于 Java 认为我们 List 是可以为 null ,所以导致了类型匹配崩溃。

1.2K20

KotlinKotlin基础

区分导入是类还是函数,而且,它允许使用import关键字导入任何种类声明。...when”代替“if” /** * Kotlin 中没有三元运算符,因为if有返回值 * 意味着: 可以表达式语法重写eval函数,去掉return语句和花括号,使用if表达式作为函数体...Val关键字和var关键字分别用来声明只读变量和可变变量。 字符串模板帮组你避免繁琐字符串拼接。变量名称前加上 $ 前缀或者 ${} 包围一个表达式,来把值注入到字符串中。...for、while、和 do-while 循环与java类似,但是for循环现在更加方便,特别是当你需要迭代map时候,又或是迭代集合需要下标的时候。 简洁语法 1…5 会创建一个区间。...Kotlin异常处理和java非常相似,除了Kotlin不要求你声明函数可以抛出异常。

75810

Kotlin | 2.Kotlin基础

区分导入是类还是函数,而且,它允许使用import关键字导入任何种类声明。...when”代替“if” /** * Kotlin 中没有三元运算符,因为if有返回值 * 意味着: 可以表达式语法重写eval函数,去掉return语句和花括号,使用if表达式作为函数体...for、while、和 do-while 循环与java类似,但是for循环现在更加方便,特别是当你需要迭代map时候,又或是迭代集合需要下标的时候。 简洁语法 1..5 会创建一个区间。...区间和数列允许Kotlinfor循环中使用统一语法和同一套抽象机制,并且还可以使用in运算符和!in运算符来检查值是否属于某个区间。...Kotlin异常处理和java非常相似,除了Kotlin不要求你声明函数可以抛出异常。

70620

从点滴基础探究Kotlin独特魅力

再次接触Kotlin,对Kotlin新特性又有了一个更加深刻认识: Kotlin可谓取众多语言之精华!这一次从爱变成了痴迷....,允许使用任何对象. ③ kotlin标准库中有setOf函数,可以创建一个Set,会包含所有指定为函数实参对象.条目顺序不重要,只要两个set中包含一样条目,它们就是相等. ④ 上面这些例子都是等式检查...语法不仅可以创建数字区间,还可以创建字符区间.这里迭代从A到F字符. ② for 循环允许展开迭代中集合元素(这里是 map 键值对集合) : 把展开结果存储到了两个独立变量中 : letter...I/System.out: 123 说明: ① 和Java最大区别是不用显示地抛出异常. ② kotlin 区分受检异常和未受检异常.不用指定函数抛出异常,而且可以处理也可以处理异常....变量名称前加上 前缀 或者 { }包围一个表达式,来把值注入到字符串中.③ 值对象类kotlin中简洁方式表示.④ kotlin if 是带返回值表达式.⑤ when 表达式替代了

2.6K30

第7章 集合类第7章 集合

Kotlin没有去重复造轮子(Scala则是自己实现了一套集合类框架),而是Java 类库基础上进行了改造和扩展,引入了不可变集合类,同时扩展了大量方便实用功能,这些功能API 都在 kotlin.collections...另外,Kotlin集合类不仅仅能持有普通对象,而且能够持有函数类型变量。...7.3 创建集合Kotlin中使用 listOf() 、setOf()、mapOf() 创建可变 List列表、Set集、Map映射表;使用mutableListOf() 、mutableSetOf...=y value=2 key=z value=3 7.5 映射函数 使用 map 函数,我们可以集合元素,依次使用给定转换函数进行映射操作,元素映射之后新值,会存入一个集合中,并返回这个新集合...这个过程可以下图形象地来说明 ? map 函数 List、Set 继承Iterable 接口中,和Map接口中都提供了这个 map 函数

1.2K20

Kotlin 程序设计》第四章 Kotlin 语法基础

精确控制集合编辑权限,有助于消除 bug 和设计良好 API。 预先了解一个可变集合只读视图和一个真正可变集合之间区别是很重要。...非性能关键代码中创建 map 可以一个简单惯用法来完成:mapOf(a to b, c to d) 注意上面的 readOnlyView 变量(译者注:与对应可变集合变量 numbers)指向相同底层...如果一个 list 只存在只读引用,我们可以考虑该集合完全不可变。...创建一个这样集合一个简单方式如下: val items = listOf(1, 2, 3) 目前 listOf 方法是使用 array list 实现,但是未来可以利用它们知道自己不能变事实,返回更节约内存完全不可变集合类型...对于可变集合类型这是不允许,因为这将导致运行时故障。

1.4K20

Kotlin集合类排序Kotlin 开发者社区

, 3, 4, 6, 7, 9] 重要是要注意我们使用了一个可变集合。...*以下部分中,我们将讨论: 比较器创建 处理空值 扭转订单 比较器规则扩展 为了简化Comparator创建 *, * Kotlin带来了许多工厂方法,使我们代码更具表现力。...作为参数,我们给出了可变数量函数(排序规则),每个函数都返回一个Comparable对象。然后,将按顺序调用这些函数,直到生成Comparable对象计算为不相等或直到调用所有函数。...结论 本快速教程中,我们了解了如何使用sort,sortBy和sortWith方法对Kotlin集合进行排序。...之后,我们还使用kotlin.comparisons包来创建Comparator对象,并使用其他排序规则来增强它们。 可以GitHub上找到所有这些示例和代码段实现。

2.4K50
领券