カテゴリー : Go言語

SOY CMSマニュアルページ作成中
SOY CMS、SOY ShopとSOY Appの操作に関する質問を下記のページで受け付けています。

SOY CMS/Shopで標準機能だけでは実装が難しい時はお気軽にご相談下さい。

SOY CMSの開発秘話を投稿しました。→ SOY CMSの開発秘話
ブログ内検索
 

Go言語でクライアントのレスポンスを見る

workspace/go/web/clientでclient.goファイルを作成する。 package main import ( "fmt" "log" "net/http" "net/http/httputil" ) func main() { resp, err := http.Get("http://localhost:8889") defer resp.Body.Close() if err != nil { log.Fatal(err...

Read More…

 

Go言語でサーバを立ち上げる

workspace/go/web下にserverディレクトリを作成する。 package main import ( "fmt" "io" "log" "net/http" "net/http/httputil" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { dump, err := httputil.DumpRequest(...

Read More…

 

Go言語で並行処理(ゴルーチン)

helloという言葉とworldという言葉をprint関数を作成して、同時に表示してみる。 package main import ( "fmt" "time" ) func main() { print("hello") print("world") } func print(s string) { for i := 0; i 5; i++ { time.Sleep(100 * time.Millisecond) fmt.Print...

Read More…

 

Go言語で無名関数

関数内で作成された関数で、関数名を持たないものを無名関数と呼ぶ。 package main import "fmt" func main() { f := func() { fmt.Println("hello") } f() } f := func() { fmt.Println("hello")で実行したい関数をそのまま変数fに代入する。f()で変数fに入った関数を実行する意味になる。 即時実行の際は、下記のようにコードを入力する。 package...

Read More…

 

Go言語で関数型の値を扱う

helloを表示するgreet関数を変数fに代入して実行してみる。 package main import "fmt" func main() { var f func() f = greet f() } func greet() { fmt.Println("hello") } ここで、f = greetは、関数greetを値として変数に代入している。この場合、f()で、変数fの値が関数型だったら実行される。 fmt.Printlnすると、hel...

Read More…

 

Go言語で内部コマンドを作成する③

~/workspase/go/flagを作業ディレクトリとし、main.goファイルを作成し、その中に下記のコードを入力する。 package main import ( "flag" "fmt" ) var IntOpt = flag.Int("i", 1111, "please input interger value") var StrOpt = flag.String("s", "default", "please input string value") ...

Read More…

 

Go言語で内部コマンドを作成する②

~/workspase/go/cmdを作業ディレクトリとし、main.goファイルを作成し、その中に下記のコードを入力する。 今回は、os.Argsの機能を調べてみる。 package main import ( "fmt" "os" ) func main() { fmt.Println(os.Args) if len(os.Args) 1 { fmt.Println(os.Args[1]) } } 次に下記のコマンドを入力する。 cd ~/...

Read More…

 

Go言語で内部コマンドを作成する①

 ~/workspace/go/cmdを作業ディレクトリとして、main.goファイルを作成し、下記のコードを入力する。 package main import ( "fmt" ) func main() { fmt.Println("usako") } 次に、インストールしたMINGW64を使って、下記のような実行ファイルを作成する。 $ cd ~/workspace/go/cmd $ go build main.go $ ./main.exe ...

Read More…

 

Go言語で一方向ハッシュ関数

ryokoという言葉を一方向ハッシュ関数を自作して暗号化してみる。 package main import ( "fmt" ) func main() { hash := CreatHash("ryoko") fmt.Println(hash) } func CreatHash(p string) string { b := []byte(p) fmt.Println(p) fmt.Println(b) return "" } func...

Read More…

 

Go言語でファイルの読み込み

templateというファイルの読み込みを行う。 package main import ( "fmt" "io/ioutil" "log" "os" ) func main() { file, err := os.Open("template/header.txt") if err != nil { log.Fatal(err) } defer file.Close() fmt.Println(file) var content...

Read More…

 

Go言語でhtmlからの文字の部分的取得

htmlから本文を取得してみる。 package main import ( "bufio" "io" "log" "net/http" "os" "strings" ) func main() { url := "https://saitodev.co/article/%E3%83%A4%E3%83%96%E3%82%AC%E3%83%A9%E3%82%B7%E3%81%AE%E5%9F%B7%E5%BF%B5" resp, err := htt...

Read More…

 

Go言語で文字列操作

Go言語で"pimg src="/site/files8/P9160020.JPG" alt="" //p"の文字列を、pimg src="./files/P9160020.JPG"/p"に置換してみる。 package main import ( "fmt" "regexp" "strings" ) func main() { line := "pimg src=\"/site/files8/P9160020.JPG\" alt=\"\" //p" ...

Read More…

 

Go言語で特定のサイトの複数の画像を取得する

植物のミカタの任意のページから複数の画像を取得してみる。 func main() { url := "https://saitodev.co/article/%E6%AF%94%E5%8F%A1%E5%B1%B1%E3%81%AE%E5%B1%B1%E9%A0%82%E4%BB%98%E8%BF%91%E3%81%AB%E3%81%82%E3%81%A3%E3%81%9F%E5%A4%A7%E3%81%8D%E3%81%AA%E5%B2%A9" response, err := h...

Read More…

 

Go言語でHTMLのイメージタグから画像を取得

画像の名前がついたファイルをそのまま作成する。 package main import ( "fmt" "io/ioutil" "log" "net/http" "os" "regexp" "strings" ) func main() { var line string line = "pimg src=\"/site/files10/P5100314.JPG\" alt=\"\" //p" r := regexp.MustCompile...

Read More…

 

Go言語でWebサイトから画像のデータを取得

植物のミカタから任意の画像データを取得し、main.goと同階層に画像ファイルを作成してみる。 package main import ( "io/ioutil" "log" "net/http" "os" ) func main() { var url string url = "https://saitodev.co/site/files10/P5080305.jpg" response, err := http.Get(url) if e...

Read More…

 

Go言語でファイル作成

main.goファイルと同階層に「hello」と記載されたsample.txtファイルを作ってみる。 package main import ( "log" "os" ) func main() { var file *os.File _, err := os.Stat("sample.txt") if err != nil { file, err = os.Create("sample.txt") if err != nil { log....

Read More…

 

Go言語で構造体のメソッド

Go言語では、任意の型に特化した関数を定義するための仕組みであるメソッドという機能がある。 Person型の構造体を含んだ関数Greetをパッケージに組み込んでmain.goファイルで実行してみる。 まず、sample.goファイルに下記のコードを記載する。 package sample import "fmt" type Person struct { Id int Name string Reading string } func (p ...

Read More…

 

Go言語で構造体

Go言語の型は、typeで自由に作ることができる。今回は、「複数の任意の型の値を一つにまとめたもの」である構造体(struct)という型を作成する。 例えばryokoという人を番号とふりがなをつけて表示してみる。 package main import "fmt" type Person struct { id int name string reading string } func main() { var ryoko Person ...

Read More…

 

Go言語でマップ(連想配列)

任意の型のキーと任意の型の要素を保持する特殊な配列をマップと呼ぶ。他言語では連想配列と呼ぶ。 キーが「name」、要素が「Tuyoshi」,キーが「reading」を要素が「Saito」の組み合わせを表示してみる。 package main import "fmt" func main() { var m map[string]string m = make(map[string]string) m["name"] = "Tuyoshi" m["reading"]...

Read More…

 

Go言語でスライス(可変長配列)

Go言語のmake関数を使って、10までの要素を作り、4番目の数「5」を表示してみる。 package main import "fmt" func main() { var s []int s = make([]int, 10) s[4] = 5 fmt.Println(s) } 要素の数を特定しないで記載する配列を可変長配列と呼ぶ。前回の固定長配列は、var s intで表したが、可変長配列は、var s []intと[]を引数の前に記載する。また、...

Read More…