タグ

あとで読むとポインタに関するdelegateのブックマーク (5)

  • GoのInterfaceの作法 "Accept Interfaces, Return structs" - y-zumiの日記

    はじめに Goにおける抽象化の方法にインターフェースがあります。インタフェースをうまく使うことにより具体的な実装を隠し、疎結合な実装ができるようになります。 これにより、テストがやりやすくなったり、リファクタリングの影響範囲を小さくできるなどのメリットがあります。インターフェースがないコードは振る舞いで共通化することができないため、冗長かつ密結合なシステムになってしまいます。 今回はGoのインターフェースの基的な考え方である "Accept interfaces, Return structs" について紹介します。 "Accept interfaces, Return structs" とは 直訳で 「インターフェースを受け入れて、構造体を返す」 ですが、この考え方はJack Lindamood氏が過去に提案したものです。 GoのCodeReviewのドキュメントには以下のように書かれ

    GoのInterfaceの作法 "Accept Interfaces, Return structs" - y-zumiの日記
  • golang の 引数、戻り値、レシーバをポインタにすべきか、値にすべきかの判断基準について迷っている - pospomeのプログラミング日記

    日頃から 引数にポインタを渡した方がいいのか? 値を渡した方がいいのか? 戻り値はどーなの? メソッドのレシーバは? なんて迷っているのでアウトプットしてみる。 メソッドのレシーバについては以下に載っていた。 https://github.com/golang/go/wiki/CodeReviewComments#receiver-type 以下は日語訳。 http://qiita.com/knsh14/items/8b73b31822c109d4c497#receiver-type レシーバについては、これが基準な気がするのでこれに従おうと思う。 ということで解決。 そして、このドキュメントにはレシーバというよりも、 ポインタと値の特徴が載っているので、 それらの特徴を「引数」「戻り値」でも考えていけば、それっぽい答えになりそう。 ということで、「引数」「戻り値」を対象にザックリとまと

    golang の 引数、戻り値、レシーバをポインタにすべきか、値にすべきかの判断基準について迷っている - pospomeのプログラミング日記
  • Goでポインターの扱いがわからない時に見たい内容。

    ポインターで何ができるかはわかったけど、つまりどう扱えば良いのかわからない時に見る内容にしたいきたいと思います。 色々意見を交わして考えが変わる事もあるので、その度に変更していけたらと思います。 Go言語触ってると頻出するポインター問題。 いろいろな人と開発してると、 どこをポインターにして書いたらいいのかわからない という話によくなる。 これは多分正解が無くて、メンバーのGoに対する成熟度やアーキテクチャによってどういう方針で作っていくかが結構変わってくると思う。 なので、 正解はない 前提だけど、個人的に ここはコレで良い気がしてる というのを書いていきたい。 プリミティブ型、プリミティブ型の配列をポインタでメソッド間で受け渡す場合は注意する 例えば下記の型(プリミティブ型はGoに元々にある型のようなもの) *int *string *[]byte []*string これらの型でre

  • 【C++】string型をcharに変換/コピーする方法【値 配列 ポインタ string to char】

    C++の文字列クラスをchar型やchar配列、C言語形式の文字列へ変換またはコピーする方法を紹介します。 目次 std::string → const char*(C言語形式の文字列へ変換) std::string → char*(ヌル終端文字列のコピー) std::string → char[](固定長配列へのコピー) std::string → char[] (部分文字列をコピーする場合) std::string → char(文字型への変換) std::u16string → char16_t(ワイド文字列のコピー) std::string → const char* std::string型のメンバ関数c_strで、C言語スタイルの文字列をポインタとして取得することができます。 std::string str("abc"); const char* cstr = str.c_st

  • もう怖くない!Goのポインタを理解しよう! - Qiita

    はじめに 僕がGoを触っていてまず最初に躓いたのがポインタでした。 「なんか値が上手く変わんない?」「あれ、今回って&だっけ?それとも*だっけ?」「ん?なんかsliceが変な挙動を示す?」 気づいたら色々な壁にぶつかって、ポインタはよく分からないしなんか怖いものと思っていました。 Goを初めて学ぶ人でそう思う人は僕以外にもいるはず!笑 ということで今回はそんな恐怖とおさらばしようという記事です! Goのポインタで苦しんでる方、一緒にポインタを理解していきましょう! 目次 そもそもポインタって何? 関数とポインタ sliceとポインタ sliceの構造 append時のslice mapとポインタ おわりに 参考文献 そもそもポインタって何? A tour of Goには以下のように記載してあります。 Go has pointers. A pointer holds the memory a

    もう怖くない!Goのポインタを理解しよう! - Qiita
  • 1