2013-01-12 28 views
9

在Go中,有其中的gettext的短形式的任何情況:任何將函數名稱別名爲'_'的方法?

_("String to be translated.") 

可使用?其中一個我相當肯定的答案是'不',但是爲了萬一我忽略了一些東西而提問。我在想,就可以實現最好的是:

import . "path/to/gettext-package" 
... 
s := gettext("String to be translated.") 

因爲下劃線有一個非常特殊的意義,並試圖定義一個名爲函數「_」結果在編譯時錯誤「不能用_作爲價值」。

回答

15

號的blank identifier

...不引入新的綁定。

督察,你可以宣佈「東西」命名_,但使用的是「名」,你不能指以任何方式。

然而,一個可以親近的目標:

package main 

import "fmt" 

var p = fmt.Println 

func main() { 
     p("Hello, playground") 
} 

(也here

即。您可以將任何(本地或導入)函數綁定到變量,然後通過該變量調用該函數,從而擺脫包前綴 - 如果您認爲方便。 IMO不是,順便說一句。

+0

是的,有道理。感謝您的確認。 –