告別Java啰嗦代碼!Kotlin兩大魔法讓編程爽到飛起
還在為Java里沒完沒了的拼接字符串發愁?被參數爆炸的函數逼瘋?今天帶你解鎖Kotlin兩個超實用特性,保準讓你寫代碼時嘴角瘋狂上揚!
$符魔法:字符串拼接秒變絲滑
$符魔法:字符串內嵌表達式(字符串模板)
真實暴擊場景
當你需要把變量塞進字符串時,Java簡直像在玩積木:
// Java版:手抖就會拼錯!
String user = "Kris";
int coffeeCups = 3;
System.out.println(
"用戶:" + user + " 今天喝了" + coffeeCups + "杯咖啡" // 眼睛已看花
);Kotlin神仙操作
直接往字符串里“插”變量!就像給模板填空:
fun main() {
val user = "沐雨花飛蝶"
val coffeeCups = 3
println("用戶:$user 今天喝了${coffeeCups}杯咖啡") // 輸出:用戶:沐雨花飛蝶 今天喝了3杯咖啡
// ↑ $變量名 直接插入,${}還能放表達式 → 試試${user.uppercase()}
}告別加號地獄,代碼清爽得像剛喝過冰美式
參數默認值:函數調用的偷懶神器
血壓飆升時刻
Java里每次調用都得填滿所有參數,哪怕大部分值都一樣!
// Java版:重復寫到懷疑人生
orderCoffee("拿鐵", "大杯", "正常糖", "加濃縮");
orderCoffee("卡布", "大杯", "正常糖", "加濃縮"); // 參數重復90%...Kotlin超爽方案
設置參數默認值!重要的事說三遍 → 能省則省!能省則省!能省則省!
// 設置默認值:不傳參數就用默認配置
fun orderCoffee(
name: String,
size: String = "大杯", // 默認大杯
sugar: String = "正常糖", // 默認正常糖
extra: String = "不加料" // 默認不加料
) {
println("【$size】$name 糖度:$sugar 加料:$extra")
}
fun main() {
orderCoffee("拿鐵") // 輸出:【大杯】拿鐵 糖度:正常糖 加料:不加料
orderCoffee("摩卡", extra = "加燕麥奶") // 輸出:【大杯】摩卡 糖度:正常糖 加料:加燕麥奶
orderCoffee("濃縮", size = "小杯", sugar = "無糖") // 輸出:【小杯】濃縮 糖度:無糖 加料:不加料
}像點奶茶一樣調函數:只說特殊要求,其他都默認!
實戰:5行代碼實現咖啡點單
把兩大特性結合使用,直接吊打Java版
class CoffeeOrder(
val name: String,
val size: String = "大杯", // 默認參數值
val sugar: String = "少糖",
val ice: String = "正常冰"
) {
fun printOrder() {
println("【$size】$name | 糖:$sugar 冰:$ice") // $符魔法打印
}
}
fun main() {
CoffeeOrder("生椰拿鐵").printOrder() // 輸出:【大杯】生椰拿鐵 | 糖:少糖 冰:正常冰
CoffeeOrder("抹茶星冰樂", ice = "去冰").printOrder() // 輸出:【大杯】抹茶星冰樂 | 糖:少糖 冰:去冰
}參數自由組合 + 智能默認值 + 優雅打印 = 代碼界的絲滑拿鐵
彩蛋:遇到坑怎么辦?
Q:默認參數在前怎么辦?→ 用具名參數精準打擊!
fun createUser(
id: Int = 0, // 默認在前
name: String // 非默認在后
) {
}
// 調用時指定參數名跳過默認參數
createUser(name = "小王") // id用默認值0,只傳name今日份快樂編程秘訣:
? ?? 能用$name就別用"+" + name + "+"
? ?? 能設默認值就別寫重載函數
學會這兩招,你的Kotlin代碼將比同事的Java短一半!(悄悄保存,卷死他們)
























