[解決済み] Goで配列を反転させるにはどうしたらいいですか?
2022-02-02 15:45:50
質問
http://play.golang.org/p/W70J4GU7nA
s := []int{5, 2, 6, 3, 1, 4}
sort.Reverse(sort.IntSlice(s))
fmt.Println(s)
// 5, 2, 6, 3, 1, 4
func Reverse(data Interface) Interface の意味がわかりにくい。
配列を反転させるには?ソートする必要はありません。
どのように解決するのですか?
通常、整数の配列を並べ替えるには、配列の周りを
IntSlice
というメソッドを定義しています。
Len
,
Less
および
Swap
. これらのメソッドは、順番に
sort.Sort
. 何
sort.Reverse
を定義している既存の型を取るということです。
Len
,
Less
および
Swap
を置き換えますが
Less
メソッドを、常に基礎となる
Less
:
type reverse struct {
// This embedded Interface permits Reverse to use the methods of
// another Interface implementation.
Interface
}
// Less returns the opposite of the embedded implementation's Less method.
func (r reverse) Less(i, j int) bool {
return r.Interface.Less(j, i)
}
// Reverse returns the reverse order for data.
func Reverse(data Interface) Interface {
return &reverse{data}
}
というように書くと
sort.Reverse(sort.IntSlice(s))
このように、新しい、「修正された」、このようなものを得ることができるのです。
IntSlice
を持ち、その
Less
メソッドを置き換えます。ですから、もし
sort.Sort
を呼び出し、その上で
Less
の場合、降順にソートされます。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Go: パニック: ランタイム エラー: 無効なメモリ アドレスまたは nil ポインタのデリファレンス
-
[解決済み] ParseFormはいつ使うべきで、FormValueとPostFormValueはいつ使うべきですか?
-
golang インストールプロンプト:ダイヤル tcp 216.58.200.241:443: connectex: 接続の試行に失敗しました。
-
[解決済み] SETNXでシングルインスタンスのRedisをロックする
-
[解決済み] goでローカルパッケージをインポートするには?
-
[解決済み] 環境変数GOPRIVATEの設定方法
-
[解決済み] go get を使って特定のバージョンのパッケージをインポートするにはどうすればよいですか?
-
[解決済み] Goで部分文字列を抽出する
-
[解決済み] 2枚のスライスの等価性を確認する
-
[解決済み】インターフェースのスライスを変換するタイプ