原生字符串和转义字符串内部都支持模板。 如果你需要在原生字符串中表示字面值 $ 字符(它不支持反斜杠转义),你可以用下列语法:
fun main(args: Array<String>) {
val price = """
${'$'}9.99
"""
println(price) // 求值结果为 $9.99}发表日期: 2022-04-15 17:17:30 浏览次数:148
广安网络公司

区划代码 | 名称 | 面积(平方千米) | 人口(万人) | 政府驻地 |
广安市 | 511600 | 6344 | 广安区 | |
广安区 | 511602 | 886 | 101 | 浓洄街道 |
前锋区 | 511603 | 401 | 53 | 大佛寺街道 |
岳池县 | 511621 | 1446 | 119 | 九龙街道 |
武胜县 | 511622 | 966 | 85 | 沿口镇 |
邻水县 | 511623 | 1919 | 103 | 鼎屏镇 |
华蓥市 | 511681 | 466 | 36 | 双河街道 |
广安区 |
街道(6)·广福街道·中桥街道·万盛街道·浓洄街道·北辰街道·枣山街道 镇(16)·悦来镇·龙台镇·肖溪镇·恒升镇·石笋镇·白市镇·大安镇·官盛镇·大龙镇·花桥镇·兴平镇·井河镇·东岳镇·穿石镇·协兴镇·浓溪镇 乡(3)·龙安乡·彭家乡·白马乡 |
前锋区 |
街道(4)·大佛寺街道·龙塘街道·奎阁街道·新桥街道 镇(8)·代市镇·观塘镇·广兴镇·观阁镇·龙滩镇·虎城镇·桂兴镇·护安镇 |
华蓥市 |
街道(3)·双河街道·古桥街道·华龙街道 镇(8)·天池镇·禄市镇·永兴镇·明月镇·阳和镇·高兴镇·溪口镇·庆华镇 乡(1)·红岩乡 |
岳池县 |
街道(2)·九龙街道·朝阳街道 镇(23)·花园镇·顾县镇·苟角镇·天平镇·石垭镇·乔家镇·普安镇·罗渡镇·裕民镇·齐福镇·伏龙镇·中和镇·临溪镇·白庙镇·新场镇·坪滩镇·龙孔镇·西板镇·镇裕镇·酉溪镇·同兴镇·兴隆镇·秦溪镇 乡(2)·黄龙乡·鱼峰乡 |
武胜县 |
镇(19)·沿口镇·飞龙镇·三溪镇·乐善镇·烈面镇·礼安镇·赛马镇·胜利镇·金牛镇·万善镇·龙女镇·宝箴塞镇·万隆镇·华封镇·中心镇·清平镇·街子镇·石盘镇·鸣钟镇 乡(4)·鼓匠乡·猛山乡·双星乡·真静乡 |
邻水县 |
镇(25)·鼎屏镇·柑子镇·观音桥镇·太和镇·城北镇·城南镇·梁板镇·牟家镇·合流镇·椿木镇·坛同镇·高滩镇·御临镇·九龙镇·丰禾镇·袁市镇·黎家镇·八耳镇·兴仁镇·王家镇·石永镇·复盛镇·石滓镇·三古镇·两河镇 |
原生字符串和转义字符串内部都支持模板。 如果你需要在原生字符串中表示字面值 $ 字符(它不支持反斜杠转义),你可以用下列语法:
fun main(args: Array<String>) {
val price = """
${'$'}9.99
"""
println(price) // 求值结果为 $9.99}
刘义
iml***i@aliyun.com
这里我把 a 的值换成 100,这里应该跟 Java 中是一样的,在范围是 [-128, 127] 之间并不会创建新的对象,比较输出的都是 true,从 128 开始,比较的结果才为 false。
刘义
iml***i@aliyun.com
RomanLuo
rom***luo@vipshop.com
RomanLuo
rom***luo@vipshop.com
Microbubu
mic***ubu@live.com
RomanLuo 这个说法有误导性:
这里判断为地址相同不是因为有没有显示声明类型,而是类型都相同,都是数值类型,没有进行装箱操作。而案例中的类型是 Int? 可空类型,类型不同所以必须装箱,导致产生一个新对象。
Microbubu
mic***ubu@live.com
xkj
xkj***n@gmail.com
@刘义 的说法是对的,但不完整;@RomanLuo 的说法也对,但也只在 [-128, 127] 范围之外有效。
下面给一个完整的用例,包含了所有情况,供大家参考。
注意其中 Int 和 Int? ,127 和 128 之间的区别。
// Int? Int? Int?val a1: Int? = 128var boxedA: Int? = a1var boxedB: Int? = a1 log(" boxedA === boxedB ? " + (boxedA === boxedB))//truelog(" boxedA == boxedB ? " + (boxedA == boxedB))//true// Int Int? Int?val a2: Int = 128boxedA = a2 boxedB = a2 log(" boxedA === boxedB ? " + (boxedA === boxedB))//false//值相等log(" boxedA == boxedB ? " + (boxedA == boxedB))//true// Int? Int? Int?val a3: Int? = 127boxedA = a3 boxedB = a3 log(" boxedA === boxedB ? " + (boxedA === boxedB))//true//值相等log(" boxedA == boxedB ? " + (boxedA == boxedB))//true// Int Int? Int?val a4: Int = 127boxedA = a4 boxedB = a4 log(" boxedA === boxedB ? " + (boxedA === boxedB))//true//值相等log(" boxedA == boxedB ? " + (boxedA == boxedB))//true// Int Int Intval a5: Int = 128val boxedA2: Int = a5 val boxedB2: Int = a5 log(" boxedA === boxedB ? " + (boxedA2 === boxedB2))//true//值相等log(" boxedA == boxedB ? " + (boxedA2 == boxedB2))//truexkj
xkj***n@gmail.com
love2kt
liu***jun@163.com
综上各位仁兄的理解,小弟发挥了一下想象力,假设有一堆货物(初始值)如果货物比较少(在[-128, 127] 之间。java里面就是自动装箱,可以理解为货物本身自带包装盒)那么把这些东西无论给甲还是给乙都不需要额外的箱子来装。所以甲乙手上的货物是一致的,二者相等。如果货物比较多([-128, 127]之外,多余一个包装盒。或者只多出一点,一个包装盒+一点散货)手拿不住了,需要拿箱子装了(装箱操作)那么甲需要一个箱子,乙需要一个箱子,手上的两个箱子是不同的(地址不同了)但是里面的货物还是一样的(值相等)
love2kt
liu***jun@163.com
ahwei
ahw***07@foxmail.com
参考地址