Goについて扱うスレッドです。
GoはGoogleによって開発された言語です。
公式
https://golang.org
公式ドキュメント
https://golang.org/doc/
公式外パッケージドキュメント
https://godoc.org
ブラウザ上で試し書き
https://play.golang.org
※前スレ
Go language part 3
https://mevius.5ch.net/test/read.cgi/tech/1571315884/
探検
Go language part 4
■ このスレッドは過去ログ倉庫に格納されています
2020/11/16(月) 04:14:40.64ID:fB5+0hxC
360359
2021/02/07(日) 19:21:38.26ID:ChxxRz8n Functional Optionの話ね
補足
補足
361デフォルトの名無しさん
2021/02/07(日) 19:31:24.83ID:9kVjsnaW structをポインタで渡すという一文で、わかってるのかな?という疑念が
FOP はざっくりと、アレンジする対象のオブジェクトを受けて内容を好きに設定する関数を、引数として渡す手法
ここでその関数の引数に対象structのポインタじゃなく実体渡しで受けるようにすると、コピーを書き換えちゃう事になるから設定しても動かない
ポインタで渡す以外の話にはならない
FOP はざっくりと、アレンジする対象のオブジェクトを受けて内容を好きに設定する関数を、引数として渡す手法
ここでその関数の引数に対象structのポインタじゃなく実体渡しで受けるようにすると、コピーを書き換えちゃう事になるから設定しても動かない
ポインタで渡す以外の話にはならない
362デフォルトの名無しさん
2021/02/07(日) 19:38:47.51ID:9kVjsnaW もしかしてstructをというのは、FOPではなくオプション用のstructを用意するという話か
363デフォルトの名無しさん
2021/02/07(日) 21:18:42.15ID:7CsMj5zJ364デフォルトの名無しさん
2021/02/08(月) 14:27:57.38ID:UNTBzX6A 13年目のGo言語 - Steve Francia氏との対話から見えたそのエコシステム、進化、そして未来
https://www.infoq.com/jp/articles/go-language-13-years/
https://www.infoq.com/jp/articles/go-language-13-years/
365デフォルトの名無しさん
2021/02/10(水) 23:54:39.22ID:yW2IX31f 18か月毎に、Goのユーザベースは2倍に膨れ上がっているのです。これはつまり、今日行われる変更は、5年前に比べて10倍の人々に影響を与える、という意味になります。
366デフォルトの名無しさん
2021/02/10(水) 23:55:51.44ID:yW2IX31f Goが現在備えている依存管理は素晴らしいものですが、おそらくは5年前に実現するべきものでした。
この遅れが難しい問題をより難しくして、結果的に必要以上のストレスをコミュニティに起こしているのです。
同じように、現在開発を進めている大きな言語変更がジェネリクスです。これもコミュニティに大きな影響を与えるでしょう。
もし最初からすべてをやり直すことができて、この機能がいかに重要かを事前に理解しておくことが可能だったならば、おそらく7年前から本格的な開発を始めておきたかった、と思っています。
この遅れが難しい問題をより難しくして、結果的に必要以上のストレスをコミュニティに起こしているのです。
同じように、現在開発を進めている大きな言語変更がジェネリクスです。これもコミュニティに大きな影響を与えるでしょう。
もし最初からすべてをやり直すことができて、この機能がいかに重要かを事前に理解しておくことが可能だったならば、おそらく7年前から本格的な開発を始めておきたかった、と思っています。
367デフォルトの名無しさん
2021/02/10(水) 23:56:43.35ID:yW2IX31f 言語として不足している唯一の大きな機能はジェネリクスです。先程も話したように、現在はこの開発に注力しています。
368デフォルトの名無しさん
2021/02/10(水) 23:58:38.65ID:yW2IX31f ・Goは優れた既定言語(default language)で、システムやサーバ、API、デーモン、データベース、Webサイトなどに適しています。Goはパフォーマンスと開発者の生産性を、高いレベルで両立させています。
・Dart + Flutterは、GUIベースアプリケーション(モバイルおよびデスクトップ)に適しています。Flutterは、複数のOSとフォーマットで動作する単一クライアントアプリケーションの記述というアイデアを、高いレベルで実現しました。
・Rustは、詳細なコントロールが必要な場合に適しています。低レベルな処理やカーネルなどです。Rustは精密性に優れていますが、その分、複雑さは大きくなります。このトレードオフが理に適っている場合もあります。そうであれば、Rustが最適です。
・Dart + Flutterは、GUIベースアプリケーション(モバイルおよびデスクトップ)に適しています。Flutterは、複数のOSとフォーマットで動作する単一クライアントアプリケーションの記述というアイデアを、高いレベルで実現しました。
・Rustは、詳細なコントロールが必要な場合に適しています。低レベルな処理やカーネルなどです。Rustは精密性に優れていますが、その分、複雑さは大きくなります。このトレードオフが理に適っている場合もあります。そうであれば、Rustが最適です。
369デフォルトの名無しさん
2021/02/10(水) 23:59:45.15ID:yW2IX31f Goは1度の週末で学べますし、2週間あればプログラミングに習熟することができます。もっと早い人もいるでしょう。他のいくつかの言語で経験があれば、Goは非常に短期間に習得できます。
Goを導入した企業と会った時に、彼らが一貫して話してくれることのひとつが、Goは習得の容易な言語だ、という点なのです。
Goを導入した企業と会った時に、彼らが一貫して話してくれることのひとつが、Goは習得の容易な言語だ、という点なのです。
370デフォルトの名無しさん
2021/02/11(木) 02:00:07.60ID:Nn8EIl24 ジェネリクス結局どうなるんだよ
371デフォルトの名無しさん
2021/02/11(木) 03:54:00.93ID:y89gNJMQ 議論の末リジェクトされたって結構前に見たけども
372デフォルトの名無しさん
2021/02/11(木) 06:20:02.21ID:MYnJXR31 あったら便利かも知れないけど、無くても不便を感じてないんだよな
多分、普段に書いてる案件の方向性の違いじゃないかな
ライブラリ書きな人は欲しがるのかも
多分、普段に書いてる案件の方向性の違いじゃないかな
ライブラリ書きな人は欲しがるのかも
373デフォルトの名無しさん
2021/02/11(木) 06:24:20.93ID:Nn8EIl24 Webアプリだと必要なケースはほぼないかな
複雑なデータ構造を扱う分野とか数値計算なら必要だろうね
複雑なデータ構造を扱う分野とか数値計算なら必要だろうね
374デフォルトの名無しさん
2021/02/11(木) 07:33:17.81ID:MYnJXR31 複雑なデータ構造というより、多様なクラスじゃないか?
クラスが異なるが構造は同じ、といった場合に処理を使い回すための機能だから
たとえばList<Animals>とか
クラスが異なるが構造は同じ、といった場合に処理を使い回すための機能だから
たとえばList<Animals>とか
375デフォルトの名無しさん
2021/02/11(木) 09:48:01.53ID:XTRtAjen https://github.com/golang/go/issues/43651
spec: add generic programming using type parameters #43651
Labels: Proposal Proposal-Accepted Proposal-FinalCommentPeriod
アクセプトされたぞ
spec: add generic programming using type parameters #43651
Labels: Proposal Proposal-Accepted Proposal-FinalCommentPeriod
アクセプトされたぞ
376デフォルトの名無しさん
2021/02/11(木) 09:52:52.27ID:XTRtAjen あと議論の末リジェクトされたのはエラーのキャッチでは?
https://github.com/golang/go/issues/43777
proposal: Go 2: catch error handler #43777
https://github.com/golang/go/issues/43777
proposal: Go 2: catch error handler #43777
377デフォルトの名無しさん
2021/02/11(木) 10:26:29.66ID:5PMeOFeV378デフォルトの名無しさん
2021/02/11(木) 11:34:18.35ID:XTRtAjen https://blog.golang.org/generics-proposal
v1.18β(今年末)にはジェネリクスが入ってる予定だそうだから
そこからしばらくexperimental feature扱いになるとして
だいたいv1.20(再来年頭)かそこらでexperimentalじゃなくなってv2.0にするんじゃないか
まあこれは一番順調に行ったらって予想だけど
v1.18β(今年末)にはジェネリクスが入ってる予定だそうだから
そこからしばらくexperimental feature扱いになるとして
だいたいv1.20(再来年頭)かそこらでexperimentalじゃなくなってv2.0にするんじゃないか
まあこれは一番順調に行ったらって予想だけど
379デフォルトの名無しさん
2021/02/11(木) 12:43:54.91ID:qJXsIZl0 >>375
ファイナルフュージョン承認!
ファイナルフュージョン承認!
380デフォルトの名無しさん
2021/02/11(木) 13:01:17.98ID:ZLyjCLFI 実装難しそうだから相当先だろうな
特殊化をコンパイル時にやるのか実行時にやるのかすら決まってないみたいだし
特殊化をコンパイル時にやるのか実行時にやるのかすら決まってないみたいだし
381デフォルトの名無しさん
2021/02/11(木) 14:10:14.32ID:MYnJXR31 Javaのジェネリクス導入時みたいに、総称型コレクションの利用で警告を出すような真似はしないで欲しい
382デフォルトの名無しさん
2021/02/11(木) 14:18:10.77ID:MYnJXR31 なんで Java ではデフォルトで「raw型の使用を無視」にしとかないで、探して無視に指定するまでうるさく警告を出すことにしたんだろう
383デフォルトの名無しさん
2021/02/12(金) 03:53:22.35ID:Cyc/UqZY 結局仕様はほぼJavaと同じか
384デフォルトの名無しさん
2021/02/12(金) 13:19:24.35ID:vQ8mDll0 エラーキャッチリジェクトかよ・・
385デフォルトの名無しさん
2021/02/12(金) 19:55:13.35ID:IU5AN8go issue の本文で
func xxx() xxx, error
とか
nill
とか、go 使ってないような奴なのは見え見えだし、
妥当じゃないか?
func xxx() xxx, error
とか
nill
とか、go 使ってないような奴なのは見え見えだし、
妥当じゃないか?
386デフォルトの名無しさん
2021/02/13(土) 01:19:56.35ID:uGwTnb+S ジェネリック馬鹿を排除できるだけでもgoを採用する意味あるわ。
387デフォルトの名無しさん
2021/02/13(土) 02:05:58.45ID:b8+Lb4od 実務でgoやってみたいけど今は未経験の募集あまりないな
388デフォルトの名無しさん
2021/02/13(土) 02:18:54.12ID:x/Vsj8xA ジェネリクス反対派って結局何がしたかったんだろう
訳がわからん
言語の設計者でもないのに
訳がわからん
言語の設計者でもないのに
389デフォルトの名無しさん
2021/02/13(土) 03:56:17.09ID:qDntuLeS >>386
お薬かな
お薬かな
390デフォルトの名無しさん
2021/02/13(土) 05:14:35.81ID:0tM9M8c+ Java ではジェネリクス過激派による強制で多いに迷惑したから
391デフォルトの名無しさん
2021/02/13(土) 08:17:20.01ID:x5WG3KQe >>383
Javaと同じってどこが?
Javaと同じってどこが?
392デフォルトの名無しさん
2021/02/13(土) 09:26:28.23ID:0tM9M8c+ 正直、意味があるのか俺には理解できない
他の言語は継承による拡張なので共変反変が意味を持つ
でも go は継承による関係じゃなくて、インターフェースを具備しているかどうか
元々がインターフェースさえ合致していれば可換なのだから型パラメータには意味がない
そう思ってしまう
どうしても型パラメータが必要な用例、それを目立つように挙げて貰いたい
他の言語は継承による拡張なので共変反変が意味を持つ
でも go は継承による関係じゃなくて、インターフェースを具備しているかどうか
元々がインターフェースさえ合致していれば可換なのだから型パラメータには意味がない
そう思ってしまう
どうしても型パラメータが必要な用例、それを目立つように挙げて貰いたい
393デフォルトの名無しさん
2021/02/13(土) 10:56:01.28ID:QtTWHsVQ Goで便利なのはsort関数とかmap関数なんかではないの?
今まで型ごとに書くしかなかったんだし。
今まで型ごとに書くしかなかったんだし。
394デフォルトの名無しさん
2021/02/13(土) 12:32:44.33ID:0tM9M8c+ まずmapはインターフェースをキーとしても値としても使えるから問題にならない
ソートもsort.Interfaceを具備したコレクションでソートするから、Swapとかのための比較可能な値を返すメソッドをインターフェースで持てば良い
構造体はただの入れ物に過ぎないよね
ソートもsort.Interfaceを具備したコレクションでソートするから、Swapとかのための比較可能な値を返すメソッドをインターフェースで持てば良い
構造体はただの入れ物に過ぎないよね
395デフォルトの名無しさん
2021/02/13(土) 12:40:39.64ID:0tM9M8c+ インターフェースで構造体の多態性を確保してるから、それが既に型パラメータ以上の柔軟さを持ってる
なんでインターフェースよりも性質的に劣ってる型パラメータを導入しなきゃなんないの?
頭のいい人が、それでも導入が必要だと判断したのだから、そこには理由があるはず
でも頭が悪いから、俺ではissueで見つけられなかった
なんでインターフェースよりも性質的に劣ってる型パラメータを導入しなきゃなんないの?
頭のいい人が、それでも導入が必要だと判断したのだから、そこには理由があるはず
でも頭が悪いから、俺ではissueで見つけられなかった
396デフォルトの名無しさん
2021/02/13(土) 12:54:38.86ID:QtTWHsVQ >>394
インターフェイスを使ってしまうと毎回型チェックしないといかんし、コンパイル時に縛りもかけられんでしょ。
テストで網羅するといっても、ユーザに使ってもらうライブラリなんかではそうもいかん。
静的解析でもうまくいかんこともあるし、柔軟性を持ちたいのではなくて、コンパイル言語として担保したいんじゃないか?
俺は今まで型ごとに関数作ってたけど、インターフェイスでなんとかしてたって事?それも極端だな。
インターフェイスを使ってしまうと毎回型チェックしないといかんし、コンパイル時に縛りもかけられんでしょ。
テストで網羅するといっても、ユーザに使ってもらうライブラリなんかではそうもいかん。
静的解析でもうまくいかんこともあるし、柔軟性を持ちたいのではなくて、コンパイル言語として担保したいんじゃないか?
俺は今まで型ごとに関数作ってたけど、インターフェイスでなんとかしてたって事?それも極端だな。
397デフォルトの名無しさん
2021/02/13(土) 13:03:01.32ID:0tM9M8c+ >>396
というかインターフェースを型パラメータみたいな物として使っていて問題なかったと言ってるんだよ
機構として使い回すために、その機構に使いたかったらインターフェースを実装する
ソートの機構が使いたかったらsort.Interfaceを実装するでしょ
というかインターフェースを型パラメータみたいな物として使っていて問題なかったと言ってるんだよ
機構として使い回すために、その機構に使いたかったらインターフェースを実装する
ソートの機構が使いたかったらsort.Interfaceを実装するでしょ
398デフォルトの名無しさん
2021/02/13(土) 13:27:48.18ID:0tM9M8c+ >>396
そもそも何で型チェック?
メソッドの挙動やらが違うのに同じインターフェースを使ってるのか?
Javaとかの型パラメータでも、まさか中でキャストして使ってるのか?
偶然にインターフェースを実装してしまったケースなんて想定しても仕方ないと思う
それは設計ミスだから
区別用にダミーのメソッド生やしとけば?
そもそも何で型チェック?
メソッドの挙動やらが違うのに同じインターフェースを使ってるのか?
Javaとかの型パラメータでも、まさか中でキャストして使ってるのか?
偶然にインターフェースを実装してしまったケースなんて想定しても仕方ないと思う
それは設計ミスだから
区別用にダミーのメソッド生やしとけば?
399デフォルトの名無しさん
2021/02/13(土) 13:30:40.12ID:+kP5eWz9 goは組み込みで要素が型付けされた動的配列と連想配列を持ってるから、他のコレクションはあまり必要ないんだよね
それらでカバーできないようなケースってそもそも大抵は特殊な状況なんで、汎用的なコレクションではなくアプリの要請に合わせて独自に作るのが自然
それらでカバーできないようなケースってそもそも大抵は特殊な状況なんで、汎用的なコレクションではなくアプリの要請に合わせて独自に作るのが自然
400デフォルトの名無しさん
2021/02/13(土) 13:45:02.72ID:0tM9M8c+ んな意味不明なジェネリクスより
>>251 のバグを直して欲しいんだよな
>>251 のバグを直して欲しいんだよな
401デフォルトの名無しさん
2021/02/13(土) 13:54:07.96ID:QtTWHsVQ402デフォルトの名無しさん
2021/02/13(土) 14:07:47.74ID:0tM9M8c+ >>401
Sortableの配列を返すので正しい
文意からソート結果だろ?
君が型チェックしなきゃならんとか意味不明な事を言い出すからエスパーしたんだよさせるなよ
インターフェースならメソッドを呼ぶだけだから型チェックなんて話は出てこない
型チェックするってことは実体に変換しなきゃならんという話だろ
そうでない場合に考えられるケースとして、偶然に同じインターフェースを実装してしまった構造体を、偶然に渡してしまうコーディングミスを考えているとエスパーしてあげた
そんな阿呆な設計をしてるなら、引数としてるインターフェースにダミーのメソッドを生やしとけば、別のインターフェースになるから誤って渡すミスは無くなる
エスパーさせるなよ
Sortableの配列を返すので正しい
文意からソート結果だろ?
君が型チェックしなきゃならんとか意味不明な事を言い出すからエスパーしたんだよさせるなよ
インターフェースならメソッドを呼ぶだけだから型チェックなんて話は出てこない
型チェックするってことは実体に変換しなきゃならんという話だろ
そうでない場合に考えられるケースとして、偶然に同じインターフェースを実装してしまった構造体を、偶然に渡してしまうコーディングミスを考えているとエスパーしてあげた
そんな阿呆な設計をしてるなら、引数としてるインターフェースにダミーのメソッドを生やしとけば、別のインターフェースになるから誤って渡すミスは無くなる
エスパーさせるなよ
403デフォルトの名無しさん
2021/02/13(土) 14:21:47.27ID:QtTWHsVQ >>402
ソート可能なインターフェイスを受けてソート可能なインターフェイスが帰ってきても何も得しない。
[T Sortable]な関数の返り値は[]Tで十分でしょ。
結果がもう一度ソート可能かなんか必要な情報でない。
intがSortableだとして、返り値が[]Sortableだと、結果は型チェックしないとだよね。
[]intが直接帰ってきた方が効率的だし、無駄なコードではないよね。
やってることも自明。
mapとかflattenなんかなんかはジェネリクス使えないと使い物にならんと思うが。
エスパーするならジェネリクスの使いみちをエスパーしなよ。
ソート可能なインターフェイスを受けてソート可能なインターフェイスが帰ってきても何も得しない。
[T Sortable]な関数の返り値は[]Tで十分でしょ。
結果がもう一度ソート可能かなんか必要な情報でない。
intがSortableだとして、返り値が[]Sortableだと、結果は型チェックしないとだよね。
[]intが直接帰ってきた方が効率的だし、無駄なコードではないよね。
やってることも自明。
mapとかflattenなんかなんかはジェネリクス使えないと使い物にならんと思うが。
エスパーするならジェネリクスの使いみちをエスパーしなよ。
404デフォルトの名無しさん
2021/02/13(土) 14:23:26.25ID:x5WG3KQe 単一の引数だけなら>>395のようにインターフェースで代用できるけど
複数の引数や戻り値の型を合わせたいという場合は型引数が使いたいよね。
複数の引数や戻り値の型を合わせたいという場合は型引数が使いたいよね。
405デフォルトの名無しさん
2021/02/13(土) 14:34:17.23ID:qDntuLeS >>398
キャストしないといけないの理解できてないあたり、型パラメータとインターフェースでの実装の違い理解してなさそう
キャストしないといけないの理解できてないあたり、型パラメータとインターフェースでの実装の違い理解してなさそう
406デフォルトの名無しさん
2021/02/13(土) 15:24:34.05ID:0tM9M8c+ >>404
複数の別のインターフェースを引数に持たせれば問題ないでしょ
それぞれが型パラメータとして機能するんだから
戻り値も同じ………いや、戻り値に関しては一概には言えないのか
でも実体ポインタを返すメソッドは>>251のバグに引っ掛かるんで使いたくない
→ 戻り値の実体ポインタはインターフェースを備えてるならば、本来は反変でアップキャストされてインターフェースを返しているとも判断されるべき
このバグで多態が機能しなくなるから使いたくない
具体的にはシグネチャが違うため、変種をコレクションに混在して格納できない
ジェネリクスを導入して個別に実体ポインタを返せるようにした時に同じ現象になるはず
このメソッドを持つジェネリクスな構造体は、それぞれ可換でないので多態が適用できない
コレクションに混在させられない
インターフェースを返す設計ならば、それらは実体は異なっても多態が機能してコレクションに混在格納できる
よって、インターフェースを返す方が設計として抽象度に優れている
以上の論旨から、ジェネリクスはインターフェースの下位互換だとしか見えない
複数の別のインターフェースを引数に持たせれば問題ないでしょ
それぞれが型パラメータとして機能するんだから
戻り値も同じ………いや、戻り値に関しては一概には言えないのか
でも実体ポインタを返すメソッドは>>251のバグに引っ掛かるんで使いたくない
→ 戻り値の実体ポインタはインターフェースを備えてるならば、本来は反変でアップキャストされてインターフェースを返しているとも判断されるべき
このバグで多態が機能しなくなるから使いたくない
具体的にはシグネチャが違うため、変種をコレクションに混在して格納できない
ジェネリクスを導入して個別に実体ポインタを返せるようにした時に同じ現象になるはず
このメソッドを持つジェネリクスな構造体は、それぞれ可換でないので多態が適用できない
コレクションに混在させられない
インターフェースを返す設計ならば、それらは実体は異なっても多態が機能してコレクションに混在格納できる
よって、インターフェースを返す方が設計として抽象度に優れている
以上の論旨から、ジェネリクスはインターフェースの下位互換だとしか見えない
407デフォルトの名無しさん
2021/02/13(土) 15:35:29.60ID:x5WG3KQe >>406
違くて、2つの引数があるときにその型が同じであってほしい場合とかね。
違くて、2つの引数があるときにその型が同じであってほしい場合とかね。
408デフォルトの名無しさん
2021/02/13(土) 15:42:03.45ID:0tM9M8c+409デフォルトの名無しさん
2021/02/13(土) 15:44:29.17ID:QtTWHsVQ >>406
インターフェイスはインターフェイスで使えば良くて、ジェネリクスで効率的にできたり型を自明にできる部分はジェネリクスを使えばよいでしょ。
今でもコードジェネレータなんかで作ってる部分もあるだろうし。
どちらかがあれば原理的にどちらかが不要なのと、
どちらかがあれば片方は作ってはいけないのは別。
Sortとか、mapの[T,U]のKeyのみ、Valueのみを([]T,[]U)と、配列として返す関数なんか書こうと思ったらジェネリクスが無いと型チェックの嵐でしょ。
確かにキャストではないけど、型チェックもノーコストではないよ。
ジェネリクスのある言語使った事無いんじゃないの?
>>403のケースなんかはどうするん?型チェックすんの?
インターフェイスはインターフェイスで使えば良くて、ジェネリクスで効率的にできたり型を自明にできる部分はジェネリクスを使えばよいでしょ。
今でもコードジェネレータなんかで作ってる部分もあるだろうし。
どちらかがあれば原理的にどちらかが不要なのと、
どちらかがあれば片方は作ってはいけないのは別。
Sortとか、mapの[T,U]のKeyのみ、Valueのみを([]T,[]U)と、配列として返す関数なんか書こうと思ったらジェネリクスが無いと型チェックの嵐でしょ。
確かにキャストではないけど、型チェックもノーコストではないよ。
ジェネリクスのある言語使った事無いんじゃないの?
>>403のケースなんかはどうするん?型チェックすんの?
410デフォルトの名無しさん
2021/02/13(土) 15:45:29.07ID:QtTWHsVQ >>408
map[T]Uを受けて、[]Tと[]Uを返す関数。
map[T]Uを受けて、[]Tと[]Uを返す関数。
411デフォルトの名無しさん
2021/02/13(土) 15:51:17.90ID:0tM9M8c+ とか顔真っ赤にして主張してきたけど、具体的にちょっと面倒な事例に自分で気づいてしまった
new() が厄介だな
new の代わりにインスタンスを生成する factory 一時クラスを外から渡してやれば解決するんだけど面倒ではある
new() が厄介だな
new の代わりにインスタンスを生成する factory 一時クラスを外から渡してやれば解決するんだけど面倒ではある
412デフォルトの名無しさん
2021/02/13(土) 15:56:48.27ID:x5WG3KQe >>408
結局は返り値の話に帰着するのかもしれないけど (T, T) -> T な関数が欲しいとかね。
結局は返り値の話に帰着するのかもしれないけど (T, T) -> T な関数が欲しいとかね。
413デフォルトの名無しさん
2021/02/13(土) 16:10:36.47ID:QtTWHsVQ 返り値に関係なかったら、Tとそれに対するfunc(x T)を受ける関数とかかなぁ。
414デフォルトの名無しさん
2021/02/13(土) 16:10:51.14ID:0tM9M8c+ >>410
納得した
メソッド引数のシグネチャが異なるものを一本化して書けるわけか
確かにインターフェースじゃmap[T]Uを引数とした共通メソッドは書けない
T,Uがインターフェースだとしても、それぞれのインターフェースの組ごとにメソッドが必要になるから
納得した
メソッド引数のシグネチャが異なるものを一本化して書けるわけか
確かにインターフェースじゃmap[T]Uを引数とした共通メソッドは書けない
T,Uがインターフェースだとしても、それぞれのインターフェースの組ごとにメソッドが必要になるから
415デフォルトの名無しさん
2021/02/13(土) 16:12:52.49ID:QtTWHsVQ416デフォルトの名無しさん
2021/02/13(土) 17:03:51.51ID:0tM9M8c+ >>415
JavaだとProxyを使って何でも解決するという黒魔術的解決手段があるのが恐ろしい
デバッグ用だよねとか思ってると struts とかwebフレームワークのソース読んだ時に、インタセプターとかで普通に使われていて更にビビる
JavaだとProxyを使って何でも解決するという黒魔術的解決手段があるのが恐ろしい
デバッグ用だよねとか思ってると struts とかwebフレームワークのソース読んだ時に、インタセプターとかで普通に使われていて更にビビる
417デフォルトの名無しさん
2021/02/13(土) 17:45:13.81ID:F3GRWro3 >>416
Springの十八番だな。
ただ、ああいう方法だと結局、ランタイムで死ぬかどうかをテストで担保するしかないって方向性に行きがち。
あとパフォーマンスももちろん遅い。
今回のジェネリクスがどう実装されるかが一番気になるけど、俺的には素直に関数たくさん作って欲しい。
Springの十八番だな。
ただ、ああいう方法だと結局、ランタイムで死ぬかどうかをテストで担保するしかないって方向性に行きがち。
あとパフォーマンスももちろん遅い。
今回のジェネリクスがどう実装されるかが一番気になるけど、俺的には素直に関数たくさん作って欲しい。
418デフォルトの名無しさん
2021/02/14(日) 01:42:02.77ID:o9olz+i9 これメソッドには型パラメータ無理なの?
419デフォルトの名無しさん
2021/02/15(月) 02:10:12.40ID:QPKY0Zj9 >>400
どう考えてもバグじゃないと思う。Goのinterfaceとstructの関係はembedしなければほぼ静的方チェックありの
ダックタイピングだから「そのメソッド実装がインタフェースAを実装している」と思い込んでるのは自分であって
実際にはJavaのようなimplementではないです。もっと言うなら、ルックアップが行われるのは、実行時であり
コンパイルは厳密な型チェックが行われます
どう考えてもバグじゃないと思う。Goのinterfaceとstructの関係はembedしなければほぼ静的方チェックありの
ダックタイピングだから「そのメソッド実装がインタフェースAを実装している」と思い込んでるのは自分であって
実際にはJavaのようなimplementではないです。もっと言うなら、ルックアップが行われるのは、実行時であり
コンパイルは厳密な型チェックが行われます
420デフォルトの名無しさん
2021/02/15(月) 07:00:31.98ID:fLCzNLbm421デフォルトの名無しさん
2021/02/15(月) 07:12:07.78ID:E7fw/gtI ポインタじゃなくてインターフェースを返すのが正しいのでは?
何故ポインタを返す
インターフェースのポインタにはなんの意味もない
何故ポインタを返す
インターフェースのポインタにはなんの意味もない
422デフォルトの名無しさん
2021/02/15(月) 07:45:45.18ID:NOYsfhr4 >>421
いや、インターフェースのポインタじゃなくて、構造体ポインタ
構造体ポインタ*SubがインターフェースISubを具備しているのは代入させて確認
んでISubを返すメソッドを持つ別のインターフェースを具備させようとした時に、戻り値としてISubではなく、ISubに代入可能な*Subを返させると、シグネチャ不一致でエラー
ISub を期待しているのに *Sub を返していると
インターフェースを具備しているかの判定でも、反変を考慮してくれないだろうか、という要望
そうすればインターフェース対応でキャストして返すメソッドと構造体固有のメソッドの二本を作らなくて済むから
作れよ、と言われちゃうか
いや、インターフェースのポインタじゃなくて、構造体ポインタ
構造体ポインタ*SubがインターフェースISubを具備しているのは代入させて確認
んでISubを返すメソッドを持つ別のインターフェースを具備させようとした時に、戻り値としてISubではなく、ISubに代入可能な*Subを返させると、シグネチャ不一致でエラー
ISub を期待しているのに *Sub を返していると
インターフェースを具備しているかの判定でも、反変を考慮してくれないだろうか、という要望
そうすればインターフェース対応でキャストして返すメソッドと構造体固有のメソッドの二本を作らなくて済むから
作れよ、と言われちゃうか
423デフォルトの名無しさん
2021/02/15(月) 08:02:45.25ID:NOYsfhr4424デフォルトの名無しさん
2021/02/15(月) 14:32:51.97ID:QPKY0Zj9425デフォルトの名無しさん
2021/02/17(水) 21:45:03.79ID:cMG1yy0u Go 1.16 is released
https://blog.golang.org/go1.16
https://blog.golang.org/go1.16
426デフォルトの名無しさん
2021/02/18(木) 00:00:24.35ID:Nj/E13Sa 今回の目玉は embed で、あとは modules がデフォルト利用になったくらいか
96% って、どこから来た数字なんだろ?
96% って、どこから来た数字なんだろ?
427デフォルトの名無しさん
2021/02/18(木) 01:11:43.46ID:cGA2Qyj5 ioutilオワコンになったのか
428デフォルトの名無しさん
2021/02/18(木) 01:58:45.29ID:DBnOoZ1k え、これすごくない?
ファイル内容のバイナリを変数に設定できるのか
クソ便利そう
ファイル内容のバイナリを変数に設定できるのか
クソ便利そう
429デフォルトの名無しさん
2021/02/18(木) 02:18:54.53ID:cGA2Qyj5 凄くはないがまた変なものを入れたなあ
430デフォルトの名無しさん
2021/02/18(木) 08:15:16.68ID:a7MZxCIG そんなに変なもの?
結構ニーズあったじゃん。
結構ニーズあったじゃん。
431デフォルトの名無しさん
2021/02/18(木) 10:42:52.64ID:CVa006wI embed例を交えながら詳しく懇切丁寧に説明してくれ
432デフォルトの名無しさん
2021/02/18(木) 10:59:32.89ID:a7MZxCIG >>431
WebUIを持ったアプリの画像なんかのアセットをバイナリ一つで配布したいとか。
WebUIを持ったアプリの画像なんかのアセットをバイナリ一つで配布したいとか。
433デフォルトの名無しさん
2021/02/18(木) 19:44:54.68ID:13d7fDKM それはしゅごい
434デフォルトの名無しさん
2021/02/19(金) 01:02:34.28ID:h/t0+GoU それって凄いことなの?逆に今までできなかったの?
435デフォルトの名無しさん
2021/02/19(金) 02:06:27.21ID:C4/TpWTT 外部ライブラリで出来てたから、そんなにインパクトはない。むしろNotifyContextの方が意味ありそう
こういう事は他言語だと非常にやりづらい
こういう事は他言語だと非常にやりづらい
436デフォルトの名無しさん
2021/02/19(金) 02:54:55.96ID:h/t0+GoU NotifyContext例を交えながら詳しく懇切丁寧に説明してくれ
437デフォルトの名無しさん
2021/02/19(金) 02:57:11.30ID:EqIzDHt7 自分で調べろや
438デフォルトの名無しさん
2021/02/20(土) 05:37:00.99ID:b7O3Qybq android アプリを調べようと、go android 常駐アプリ で検索したんだけど、go の記事が探しづらい
以前からポケモンが引っ掛かっていた上に、次のandroid11はGoエディションなのか?
以前からポケモンが引っ掛かっていた上に、次のandroid11はGoエディションなのか?
439デフォルトの名無しさん
2021/02/20(土) 10:48:48.97ID:b7O3Qybq 1.16 だと、Deprecation of io/ioutil は面倒に感じるなぁ
一杯使っちゃっていて
一杯使っちゃっていて
440デフォルトの名無しさん
2021/02/20(土) 12:08:15.81ID:AdT3uMXC 検索ワードはgolangって言うのはこのスレの常識
441デフォルトの名無しさん
2021/02/20(土) 12:48:22.08ID:Gn0QOwDd そういやgolang.jpってもう活動していないのか
日本のgoコミュニティの総本山たるべきドメイン名を無駄にしやがって
日本のgoコミュニティの総本山たるべきドメイン名を無駄にしやがって
442デフォルトの名無しさん
2021/02/20(土) 16:13:03.32ID:seCRjC7e ほんと返すがえすも go は名前がクソい
443デフォルトの名無しさん
2021/02/20(土) 17:07:51.09ID:QogkRbMK ほ〜ら〜 あしもとを見〜て golang
444デフォルトの名無しさん
2021/02/21(日) 00:08:47.19ID:4ZSApsu7 名前よりもマスコットがキモすぎるのが気になってしかたがない
445デフォルトの名無しさん
2021/02/21(日) 00:49:16.30ID:1AmDYpOZ キモネズミ
446デフォルトの名無しさん
2021/02/21(日) 03:58:10.72ID:XsukC5HX ヽ( ;゚;ж;゚;)ノ ゴーファッ
447デフォルトの名無しさん
2021/02/21(日) 07:48:25.22ID:y91K2jdN 俺みたいにゴーファ君を結構可愛いとか思う人間がいるから厄介
448デフォルトの名無しさん
2021/02/21(日) 20:35:02.33ID:H/D/EzLk JAVAのマスコットよりはまし(´・ω・`)
449デフォルトの名無しさん
2021/02/21(日) 22:08:56.40ID:RiVq+6hw c#はマスコットいないんだぞ
クラウディアとか藍澤光とかいたけどな
クラウディアとか藍澤光とかいたけどな
450デフォルトの名無しさん
2021/02/21(日) 22:43:47.36ID:y91K2jdN マスコット…冴子先生がCortanaとして復職してくれたなら、Cortanaボタンを非表示にしないのに…
451デフォルトの名無しさん
2021/02/22(月) 00:06:54.06ID:X+4sJ2iC マスコットはD言語がカワイイ。LISPが最キモ。
452デフォルトの名無しさん
2021/02/22(月) 00:53:22.82ID:vmWIyuyK LISPにマスコットなんてあったのか・・とおもってググってみたら
たしかにこれはエグい
キモすぎ
たしかにこれはエグい
キモすぎ
453デフォルトの名無しさん
2021/02/22(月) 18:22:17.90ID:GfaSrtw3 なんか gui ライブラリで調べるといろいろ出てきてよくわからん
マルチプラットフォームな gui って何がええんや?
Qt は golang で使ってる人おるんかえ?
マルチプラットフォームな gui って何がええんや?
Qt は golang で使ってる人おるんかえ?
454デフォルトの名無しさん
2021/02/22(月) 18:24:31.58ID:Xis0SD1d GoでGUIアプリを作っている人はほぼ存在しない
455デフォルトの名無しさん
2021/02/22(月) 18:48:30.06ID:GfaSrtw3456デフォルトの名無しさん
2021/02/22(月) 20:26:35.06ID:MldvwhvK ローカルHTTPD建てて、ブラウザからAPIで操作するアプリは提供してる
457デフォルトの名無しさん
2021/02/23(火) 15:36:36.73ID:zz5KyfHR >>455
ウチはElectronでGUI作ってバックグラウンドにGo使うてる
ウチはElectronでGUI作ってバックグラウンドにGo使うてる
458デフォルトの名無しさん
2021/02/23(火) 16:06:31.74ID:+9qO7MJU459デフォルトの名無しさん
2021/02/23(火) 16:23:00.26ID:ADOMIACK GUIは俺は普通にブラウザ起こしてるな。
IE使われると辛いけど。
IE使われると辛いけど。
460デフォルトの名無しさん
2021/02/23(火) 17:19:08.91ID:VHVs6NAa 簡単なguiツール作るならlorcaオススメ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国連大使「日本が中国に武力行使すると脅しをかけたのは初めて」 国連事務総長に書簡★5 [♪♪♪★]
- 【芸能】篠田麻里子「水戸黄門」のオフショット公開!「くの一姿が可愛い」「うっひゃー」「スケさんカクさんが羨ましい!」 [湛然★]
- 高市首相告白「『なめられない服』を選ぶことに数時間を費やしました」「外交交渉でマウント取れる服、買わなくてはいかんかもなぁ」★4 [ぐれ★]
- 【🐼】パンダ、日本で会えなくなる? 中国との関係悪化で不安の声 ★2 [ぐれ★]
- 【芸能】44歳・池脇千鶴、激変ぶりにネット衝撃 「まるで別人…」「変化が凄い!!」の声 [冬月記者★]
- 【芸能】高橋ひかる、白ワントーン冬コーデにくぎ付け!「美しすぎて恐れ多い」「天使降臨」「透明感半端ない」 [湛然★]
- 【速報】高市、今度はロシアに喧嘩を売る [329271814]
- 適当な嘘をついてその場を切り抜けてるけど
- 佐藤、鈴木、高橋、田中、伊藤、渡辺、山本、中村、小林、加藤、これらの名字の奴ちょっと来い
- 朝市に飲むココアはおいしい
- 【動画】チー牛「なんかやべえ奴に首締められて草w」👈人を殺した直後だったことが判明... [856698234]
- Jリーグあるある言いたい…Jリーグあるある早く言いたい🙄 [142738332]
