スキップしてメイン コンテンツに移動

Goでの同じ文字の連結について

おばんです。@CreatorQsFです。夜はながいですね。

普段なら、PHPで書くと、同じ文字列の連結ってどう書いてます?みなさん。
たぶんPHPerならこう書くんじゃないかなーと。

<?php
  $str = "★";
  print $str2 = $str + $str;

はい、何の問題もなく、実行結果はきっと、「★★」ですね。
そう、文字の連結に+を使うのです。

ですが、じゃばーとかならわかると思うのですが、このやり方ってとっても非効率なんですよね!私Java触ったことないですけどw

文字列のためのオブジェクトが必要以上に生成されるのを防がないともったいないんですよね〜。

というわけで、「ばっふぁ」に挑戦します。ルーターの会社ではないですよ。

まずコード

package main
import (
  "fmt"
  "bytes"
)
func main() {
  var buf bytes.Buffer
  for i := 0; i < 繋げたい個数; i++ {
    buf.WriteString("書きたい文字")
  }
  print buf.String()
}

私はこの方法をおすすめします。
なんでこれがいいかって言うと、プログラムに無駄がなくなるからです。より速く、より軽いプログラムに成るって感じかな〜。

間違ってるかもしれません。なにせ初心者、一週間前にGoの世界に入ったばかりなので……そうしたら指摘してくださいm(_ _)m

コメント

このブログの人気の投稿

Vaffle.vimがいい感じ

実はいまのいままで、ずっとUnite.vimを使い続けてきていました。 Shougoさんのunite.vimは確かに素晴らしかったです。しかしながら、私には到底使い切れるものでもなく、もったいないとおもいつつ、ファイラーとmruのみを使う日々が続いておりました。 御存知の通り、随分前にご本人はすでにuniteからdeniteへと移行をしています。 知らなかったわけではないんですが、動いてるし速度にも問題を感じることがなかったので放置していました。 しかし今回、現状に合わせて、この部分を考え直すことにしました。要するにVimのファイラをどうしよう問題です。 で、いろいろ見た限り、わたしには、 https://github.com/cocopon/vaffle.vim これが最も適しているようでした。 ブログ記事はこちらです。 http://cocopon.me/blog/?p=6084 かなり気に入っています。動作はなかなかに速いですし、hjklで移動できる感覚も、なれると良いものですね。 あとはmruをどうしようかなーというところのみとなりました。

GoのHelloWorld!

どうも。de-liKeRというブログで普段は書いてます、 @CreatorQsF です。 知ってる人は知ってるのかな。 さて、本日より、私、GoLangの魅力に触れて感動したので、作っているプロジェクトとwebアプリをPHPからGoへ移行することを宣言いたします。 構文と仕様はいろんなところのを引っ張ってきた感じで、その際にCを学んだ時みたいにアウトプットする場がほしいので、こうして作りました。 よろしくお願いします。 さてさて、ではインストールから説明。 how to install go lang on mac? 説明ってほどでもないです。 普通にHomebrewで、 brew install go sudo install Mercurial を叩いてください。(MercurialはなんかGoに必要らしいです。) で、bash_profileでもなんでもいいのでパスを通しまーす export GOROOT=`go env GOROOT` export GOPATH=$HOME/ ホーム以下好きなディレクトリを指定し給え。 export PATH=$PATH:$GOROOT/bin:$GOPATH/bin でこれでインストール自体は終わり。あとでRevelについては書きますのでとりあえず動くかどうかだけ。 テキトウなところに、test.goってファイルを作ります。 中身こんなかんじで書いて下さい package main import fmt "fmt" func main() {   fmt.Print("Hello World!") } これで終わり。めっちゃ簡単♪ であとはTerminalから cd test.goがあるディレクトリ go run test.go でほんとに、めっちゃ高速で結果が表示されます。スクリプト言語並みです。 ってなもんです。質問あったら是非おきがるにHangoutかGoogle+へどうぞ。

GoでPodcast用のサーバーを組むときに良い(良さそうな)lib

いい感じのライブラリ、あります。 現在作成中のPadio(仮名)というサービスではこれを使っています(が、しかしもしかしたら変えるかも。現状はすごい満足)。 https://github.com/eduncan911/podcast https://godoc.org/github.com/eduncan911/podcast