私は次の自動ホットキースクリプトを持っています:
A:= 5
B := "7"
C := A.B
MsgBox %C%
3行目は機能しません。
「57」の出力を期待しています
私は以下を試しました:
C := %A%.%B%
C := (A).(B)
C := (A.B)
C := (%A%.%B%)
C := (%A%).(%B%)
どれも機能しません
誰かがそれを行う方法を教えてもらえますか?
バージョン1.1.09.04を使用しています
最新バージョン1.1.14.01にアップデートしたばかりで、それでも同じです
式(_:=
_)と「通常の」値の割り当て(_=
_)を区別します。次の例に示すように、いくつかのアプローチで目標を達成できます。
_a := 5
b := 7
x := 6789
; String concatenation
str1 = %a%%b%
; or as an expression
str2 := a b
; or with explicit concatenation operators
str3 := a . b
; Mathematical "concatenation"
; if b has exactly one digit
val1 := a*10 + b
; for any integer
val2 := a * (10**StrLen(x)) + x ; ** is the "power" operator
msgbox, str1 = %str1%`nstr2 = %str2%`nstr3 = %str3%`nval1 = %val1%`nval2 = %val2%
_
このコードは次のように出力されます。
_str1 = 57
str2 = 57
str3 = 57
val1 = 57
val2 = 56789
_
AHKでは、これらの方法はすべて準同等である必要があります。同じ種類の出力を生成します。数学的アプローチでは、変数を数値としてマークし、後続のゼロの可能性を導きます。これは、表示する前にRound()
することができます。文字列連結の出力は、AHKが必要に応じて自動ボックス化するため、数値としても使用できます。たとえば、あなたは計算することができます
_z := str1 - 1
_
そしてそれは_56
_と評価されます。
[。