以下の内容はhttps://rksoftware.hatenablog.com/entry/2025/02/06/220000より取得しました。


GitHub Copilot の GitHub Models で Gemini 2.0 Flash を動かしてみる

以前に GitHub Copilot の GitHub Models で OpenAI o3-mini を動かしてみる記事を書きました。
rksoftware.hatenablog.com

今回は Gemini 2.0 Flash が使えるようになったとのことで、同じように試してみます。

■ GitHub Models、AI モデルを変更する

毎度のことですが、Copilot の AI モデルの変更は以前に記事の案内です。
rksoftware.hatenablog.com

記事は書きましたが、簡単なのでまたこの記事でも操作方法は掲載しておきましょう。
次の画像のようにチャット欄の隅で選択するだけです。

■ プログラム言語マニア度を測る

試すコードはまたこちら。
このコードを今の C# コードにしてもらいましょう。

int[] array = new int[] { 1,2,3 };
List<int> list = new List<int>();
for(int i = 0; i < array.Length; i++)
{
    list.Add(array[i]);
}

参考回答

参考に Visual Studio が改善してくれたコードがこちらです。

using System.Linq;

var list = (new int[] { 1,2,3 }).ToList();

■ Gemini 2.0 Flash (Preview)

効いてみました。けれど、最初の一回はすぐに答えてはくれないみたいです。

Enabled をクリック。
問い合わせなおさなくとも回答をもらえました。

ちょっと違和感ありますね。

int[] array = new int[] { 1,2,3 };
List<int> list = new List<int>(array);

他は一回勝負でしたが、今回は試すモデルが一顧なのでせっかくだから何回かやってみます。

int[] array = new int[] { 1,2,3 };
List<int> list = array.ToList();
int[] array = { 1, 2, 3 };
List<int> list = array.ToList();

だんだんいいコードになっていく感じですね。悪くない。

int[] array = { 1, 2, 3 };
List<int> list = new(array);

■ オープンな質問を投げるパワハラを試み

早口で答えてる感あって、好感が持てます。ちょっと新しい機能はあまり出てこないですけれど。

■ 余談

今回も英語見えたので、前回同様カスタム インストラクションで日本語を指定してみました。

docs.github.com

計画通り! 日本語です。

C# の最新の優れた点は次のとおりです。

  • レコード: レコードは、データの保持を目的とした型を作成するための簡潔な構文を提供します。レコードは不変にすることができ、値の等価性もサポートしています。
  • トップレベルステートメント: トップレベルステートメントを使用すると、明示的な Main メソッドなしでプログラムを作成できます。これにより、単純なプログラムの記述が容易になります。
  • パターンマッチングの強化: C# 7.0 以降、パターンマッチングが大幅に改善されました。型パターン、定数パターン、プロパティパターンなど、さまざまなパターンを使用できます。
  • null許容参照型: null許容参照型は、null参照例外を防ぐのに役立ちます。null許容参照型を使用すると、変数がnullになる可能性があるかどうかを明示的に指定できます。
  • 非同期ストリーム: 非同期ストリームを使用すると、非同期的に生成されるデータのストリームを処理できます。これにより、大規模なデータセットを効率的に処理できます。
  • 範囲とインデックス: 範囲とインデックスを使用すると、配列または文字列の部分範囲に簡単にアクセスできます。
  • 破棄: 破棄を使用すると、不要になった変数を明示的に破棄できます。これにより、メモリリークを防ぐことができます。
  • ローカル関数: ローカル関数を使用すると、別の関数の内部で関数を定義できます。これにより、コードの可読性と保守性が向上します。
  • 式形式のメンバー: 式形式のメンバーを使用すると、ラムダ式を使用してメソッド、プロパティ、およびインデクサーを定義できます。これにより、コードがより簡潔になります。
  • タプル: タプルを使用すると、複数の値を単一の複合要素にグループ化できます。タプルは、メソッドから複数の値を返す場合に特に便利です。

これらの機能は、C# をより強力で、表現力豊かで、安全な言語にするのに役立ちます。

■ 知識を探る


やはり当然の結果です。少し知識は古いですね。Visual Studio との併用がよさそうです。




以上の内容はhttps://rksoftware.hatenablog.com/entry/2025/02/06/220000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14