JSONまたはXML形式のデータを提供するAPIのGoライブラリを構築しています。
このAPIでは、15分ごとに_session_id
_を要求し、それを呼び出しで使用する必要があります。例えば:
_foo.com/api/[my-application-id]/getuserprofilejson/[username]/[session-id]
foo.com/api/[my-application-id]/getuserprofilexml/[username]/[session-id]
_
Goライブラリでは、main()
funcの外部に変数を作成し、すべてのAPI呼び出しの値に対してpingを実行しようとしています。その値がnilまたは空の場合、新しいセッションIDなどを要求します。
_package apitest
import (
"fmt"
)
test := "This is a test."
func main() {
fmt.Println(test)
test = "Another value"
fmt.Println(test)
}
_
グローバルにアクセス可能な変数を宣言する慣用的なGoの方法は何ですか?
私のtest
変数には以下が必要です:
あなたが必要
var test = "This is a test"
:=
は関数でのみ機能し、小文字の 't'はパッケージにのみ表示されます(エクスポートされません)。
より徹底的な説明
test1.go
package main
import "fmt"
// the variable takes the type of the initializer
var test = "testing"
// you could do:
// var test string = "testing"
// but that is not idiomatic GO
// Both types of instantiation shown above are supported in
// and outside of functions and function receivers
func main() {
// Inside a function you can declare the type and then assign the value
var newVal string
newVal = "Something Else"
// just infer the type
str := "Type can be inferred"
// To change the value of package level variables
fmt.Println(test)
changeTest(newVal)
fmt.Println(test)
changeTest(str)
fmt.Println(test)
}
test2.go
package main
func changeTest(newTest string) {
test = newTest
}
出力
testing
Something Else
Type can be inferred
あるいは、より複雑なパッケージの初期化、またはパッケージに必要な状態を設定するために、GOはinit関数を提供します。
package main
import (
"fmt"
)
var test map[string]int
func init() {
test = make(map[string]int)
test["foo"] = 0
test["bar"] = 1
}
func main() {
fmt.Println(test) // prints map[foo:0 bar:1]
}
Initは、mainが実行される前に呼び出されます。
誤って「Func」または「function」または「Function」の代わりに「func」を使用すると、以下も取得します:
関数本体外の非宣言ステートメント
これを投稿したのは、最初に検索でここで何が間違っていたのかを突き止めたからです。
以下のように変数を宣言できます。
package main
import (
"fmt"
"time"
)
var test = "testing"
var currtime = "15:04:05"
var date = "02/01/2006"
func main() {
t := time.Now()
date := t.Format("02/01/2006")
currtime := t.Format("15:04:05")
fmt.Println(test) //Output: testing
fmt.Println(currtime)//Output: 16:44:53
fmt.Println(date) // Output: 29/08/2018
}
Outside a function, every statement begins with a keyword (var, func, and so on) and so the := construct is not available.
詳細については、こちらをご覧ください==> https://tour.golang.org/basics/1