ดังที่คนอื่น ๆ กล่าวถึงGo
ไม่สนับสนุนหนึ่งสมุทรที่สาม อย่างไรก็ตามฉันเขียนฟังก์ชันยูทิลิตี้ที่สามารถช่วยให้คุณบรรลุสิ่งที่คุณต้องการได้
func IfThenElse(condition bool, a interface{}, b interface{}) interface{} {
if condition {
return a
}
return b
}
ต่อไปนี้เป็นกรณีทดสอบเพื่อแสดงวิธีการใช้งาน
func TestIfThenElse(t *testing.T) {
assert.Equal(t, IfThenElse(1 == 1, "Yes", false), "Yes")
assert.Equal(t, IfThenElse(1 != 1, nil, 1), 1)
assert.Equal(t, IfThenElse(1 < 2, nil, "No"), nil)
}
เพื่อความสนุกสนานฉันเขียนฟังก์ชันยูทิลิตี้ที่มีประโยชน์มากขึ้นเช่น:
IfThen(1 == 1, "Yes")
IfThen(1 != 1, "Woo")
IfThen(1 < 2, "Less")
IfThenElse(1 == 1, "Yes", false)
IfThenElse(1 != 1, nil, 1)
IfThenElse(1 < 2, nil, "No")
DefaultIfNil(nil, nil)
DefaultIfNil(nil, "")
DefaultIfNil("A", "B")
DefaultIfNil(true, "B")
DefaultIfNil(1, false)
FirstNonNil(nil, nil)
FirstNonNil(nil, "")
FirstNonNil("A", "B")
FirstNonNil(true, "B")
FirstNonNil(1, false)
FirstNonNil(nil, nil, nil, 10)
FirstNonNil(nil, nil, nil, nil, nil)
FirstNonNil()
หากคุณต้องการใช้สิ่งเหล่านี้คุณสามารถค้นหาได้ที่นี่https://github.com/shomali11/util