[解決済み] GolangはPythonのように文字列を乗算することができますか?
2023-06-01 23:15:46
質問
Pythonは文字列の乗算を以下のように行うことができます。
Python 3.4.3 (default, Mar 26 2015, 22:03:40)
[GCC 4.9.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> x = 'my new text is this long'
>>> y = '#' * len(x)
>>> y
'########################'
>>>
Golangはどうにかして同等のことができないでしょうか?
どのように解決するのですか?
演算子の代わりに関数があります。
strings.Repeat
. Pythonの例を移植して、次のように実行します。
ここで
:
package main
import (
"fmt"
"strings"
"unicode/utf8"
)
func main() {
x := "my new text is this long"
y := strings.Repeat("#", utf8.RuneCountInString(x))
fmt.Println(x)
fmt.Println(y)
}
なお、私は
utf8.RuneCountInString(x)
の代わりに
len(x)
前者はルーン(Unicodeコードポイント)をカウントし、後者はバイトをカウントします。の場合
"my new text is this long"
の場合、すべての文字が1バイトなので、この違いは重要ではありませんが、何を意味しているかを指定する習慣をつけるとよいでしょう。
len("ā") //=> 2
utf8.RuneCountInString("ā") //=> 1
Pythonの比較問題でしたので、Pythonでは、1つの関数
len
は呼び出すものによって異なるものをカウントします。Python 2 では、プレーンな文字列ではバイトを、Unicode 文字列ではルーンを数えていました (
u'...'
):
Python 2.7.18 (default, Aug 15 2020, 17:03:20)
>>> len('ā') #=> 2
>>> len(u'ā') #=> 1
一方、最近のPythonでは、プレーンな文字列である は ユニコード文字列です。
Python 3.9.6 (default, Jun 29 2021, 19:36:19)
>>> len('ā') #=> 1
バイト数を数える場合は、文字列をエンコードして
bytearray
を最初に指定します。
>>> len('ā'.encode('UTF-8')) #=> 2
Pythonは複数の種類の文字列とその長さを得るための1つの関数を持っています。Goは1種類の文字列しか持っていませんが、欲しいセマンティクスにマッチする長さの関数を選ぶ必要があります。
関連
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] JavaScriptで複数行の文字列を作成する
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] Pythonで文字列の部分文字列を取得するにはどうすればよいですか?
-
[解決済み] Pythonで文字列を小文字にするには?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] タプルのリストを複数のリストに変換するには?
-
[解決済み] Pythonでリストが空かどうかをチェックする方法は?重複
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Jupyterノートブックでenv変数を設定する方法
-
[解決済み] Pythonです。未束縛のメソッドを束縛する?
-
[解決済み] PILからopenCVフォーマットへの変換
-
[解決済み] Spyderを仮想環境で動作させるには?
-
[解決済み] Pandasの'Freq'タグにはどのような値が有効ですか?
-
[解決済み] SQLAlchemy - テーブルのリストを取得する
-
[解決済み] 異なる順序で同じ要素を持つ2つのJSONオブジェクトを等しく比較するには?
-
[解決済み] Flask でグローバル変数はスレッドセーフか?リクエスト間でデータを共有するには?
-
[解決済み] matplotlib でプロットの軸、目盛、ラベルの色を変更する方法
-
[解決済み] Celeryタスクのユニットテストはどのように行うのですか?