※この翻訳ドキュメントはスクリプトによって出力・同期されています。内容が怪しそうな場合はGitHubにissueを追加したり英語の原文の確認をお願いします。

String クラスの加算と乗算の各オペレーション

このページではStringクラスの加算と乗算のオペレーションについて説明します。

加算

Stringクラスの加算のオペレーション(+)は連結されたString型の値を返却します。

import apysc as ap

ap.Stage()
string_1: ap.String = ap.String("Hello")
string_2: ap.String = string_1 + " World!"
assert string_2 == "Hello World!"
assert isinstance(string_2, ap.String)

また、+=のオペレーターもサポートしています:

import apysc as ap

ap.Stage()
string_1: ap.String = ap.String("Hello")
string_1 += " World!"
assert string_1 == "Hello World!"

Stringの値とPythonのビルトインのstrの値によるオペレーションもサポートしています。Stringの値同士のオペレーションも同様です。

import apysc as ap

ap.Stage()
string_1: ap.String = ap.String("Hello")
string_2: ap.String = ap.String(" World!")
string_3: ap.String = string_1 + string_2
assert string_3 == "Hello World!"

一方でstrの値とStringの値の場合(左側をstrの値にする場合)はサポートしていません。例えば以下のコード例ではエラーとなります:

import apysc as ap

ap.Stage()
string_1: ap.String = ap.String(" World!")
string_2: ap.String = "Hello" + string_1
TypeError: must be str, not String

乗算

Stringクラスの乗算のオペレーション(*)はPythonビルトインの文字列のように値を繰り返した文字列を返却します。

import apysc as ap

ap.Stage()
string_1: ap.String = ap.String("Hello")
string_2: ap.String = string_1 * 3
assert string_2 == "HelloHelloHello"

intもしくはInt型の値を右側の値として受け付けることができます:

import apysc as ap

ap.Stage()
string_1: ap.String = ap.String("Hello")
int_1: ap.Int = ap.Int(3)
string_2: ap.String = string_1 * int_1
assert string_2 == "HelloHelloHello"