Cách thành ngữ để truyền nhiều giá trị trả về trong Go là gì?Cách thành ngữ để thực hiện xác nhận chuyển đổi/loại trên nhiều giá trị trả lại trong Go
Bạn có thể làm điều đó trong một dòng, hay bạn cần sử dụng các biến tạm thời như tôi đã làm trong ví dụ dưới đây?
package main
import "fmt"
func oneRet() interface{} {
return "Hello"
}
func twoRet() (interface{}, error) {
return "Hejsan", nil
}
func main() {
// With one return value, you can simply do this
str1 := oneRet().(string)
fmt.Println("String 1: " + str1)
// It is not as easy with two return values
//str2, err := twoRet().(string) // Not possible
// Do I really have to use a temp variable instead?
temp, err := twoRet()
str2 := temp.(string)
fmt.Println("String 2: " + str2)
if err != nil {
panic("unreachable")
}
}
Nhân tiện, nó có được gọi là casting
khi nói đến giao diện không?
i := interface.(int)
Thực ra, điều đó cũng không được gọi là diễn viên. Nó được gọi là chuyển đổi. http://golang.org/ref/spec#Conversions –
Cảm ơn bạn đã trả lời cả hai câu hỏi. Tôi đã chỉnh sửa tiêu đề để phù hợp hơn với câu hỏi. – ANisus