[解決済み】ルーンとは何ですか?
2022-04-03 08:42:26
質問
とは何ですか?
rune
を使用することはできますか?
ググってみたけど、Golangは1行にしか書いてないね。
rune
のエイリアスです。
int32
.
しかし、どうしてケースを入れ替えるように整数が使われまくるのでしょうか?
以下は、関数のスワップケースです。
はすべて何ですか?
<=
と
-
?
また、なぜ
switch
は引数がないのですか?
&&
という意味でなければなりません。
そして
しかし
r <= 'z'
?
func SwapRune(r rune) rune {
switch {
case 'a' <= r && r <= 'z':
return r - 'a' + 'A'
case 'A' <= r && r <= 'Z':
return r - 'A' + 'a'
default:
return r
}
}
そのほとんどが http://play.golang.org/p/H6wjLZj6lW
func SwapCase(str string) string {
return strings.Map(SwapRune, str)
}
これはマッピングだと理解しています
rune
を
string
で、入れ替えた文字列を返せるようにします。しかし、具体的にどのように
rune
または
byte
はここで動作します。
解決方法は?
ルーンリテラルは32ビット整数値です。
(
しかし、それらは型付けされていない定数なので、その型は変更可能です。
). これらはユニコードのコードポイントを表します。例えば、ルーン文字リテラル
'a'
は実際には数字
97
.
したがって、あなたのプログラムは、ほぼ同等です。
package main
import "fmt"
func SwapRune(r rune) rune {
switch {
case 97 <= r && r <= 122:
return r - 32
case 65 <= r && r <= 90:
return r + 32
default:
return r
}
}
func main() {
fmt.Println(SwapRune('a'))
}
ユニコード・マッピングを見れば一目瞭然ですが、これは、以下のものと同じです。
ASCII
をその範囲内で使用します。さらに、32は実際にはその文字の大文字と小文字のコードポイント間のオフセットである。そこで
32
に
'A'
を取得します。
'a'
であり、その逆もまた然りである。
関連
-
[解決済み] GO言語:致命的なエラー:すべてのゴルーチンがスリープしている - デッドロック
-
[解決済み] Goで構造体のフィールドを反復処理する
-
go build error, error can't load package: package xxx is not in GOROOT (D:\basic_tool╱GoGoSrc╱)
-
[解決済み] Goテスト文字列が部分文字列を含む
-
[解決済み] 全モジュールのアップデートを行う
-
[解決済み] Golangで定数mapを宣言するには?
-
[解決済み] パッケージ <package_name> を提供するモジュールの go.sum のエントリがありません。
-
[解決済み] Goでenumを表現する慣用的な方法は何ですか?
-
[解決済み] スライスのメソッドを含む
-
[解決済み】アプリケーションの自動ビルドによるバージョン管理
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】vsコードの解決方法 - goplsコマンドが使用できません。
-
[解決済み] Notepad++ 用の Go 言語プラグイン
-
[解決済み] GORMでレコードを作成・更新するには?
-
[解決済み] Go: パニック: ランタイム エラー: 無効なメモリ アドレスまたは nil ポインタのデリファレンス
-
[解決済み] golang の "go get" コマンドで "go: missing Git command" というエラーが表示される。
-
goland reports an error: package XXX is not in GOROOT (X:\XXXGo ╱src╱XXX)
-
Solve golang compile prompt dial tcp 172.217.160.113:443: connectex: 接続の試行に失敗しました
-
[解決済み] go言語でUUIDを生成する方法はありますか?
-
[解決済み】アプリケーションの自動ビルドによるバージョン管理
-
[解決済み】チャンネルを開いたままにしておいてもいいのでしょうか?