# 토스트
토스트를 사용하면 커맨드에 다양한 기능을 추가할 수 있습니다.
# 커맨드
Toast의 모든 키워드, 연산자, 구문, 메서드는 커맨드입니다.
커맨드의 이름을 적고 그 뒤에 파라미터를 적어 커맨드를 사용할 수 있습니다. (괄호나 쉼표를 적지 않습니다.)
> send "Hello, world!"
커맨드를 파라미터로 사용할 수 있습니다.
> send len "Hello, world!"
# 그룹
가독성을 높이기 위해 파라미터를 그룹으로 묶을 수 있습니다.
> send (len "Hello, world!")
> send len ("Hello, world!")
# 타입
토스트에는 여러 타입이 있습니다.
# number
정수를 표현할 수 있는 숫자 타입입니다.
> 1
1
> -123
-123
# float
실수를 표현할 수 있는 숫자 타입입니다.
> 3.14
3.14
> -0.01
-0.01
# text
쌍따옴표("
) 또는 따옴표('
)로 둘러쌓여진 텍스트 타입입니다.
{
, }
를 사용해 문자열 포매팅을 사용할 수 있습니다.
> "Hello, World!"
Hello, World!
> 'Toast'
Toast
> "Hello, {1}"
Hello, 1
# boolean
참 또는 거짓을 나타내는 불리언 타입입니다.
> true
true
> false
false
# List
대괄호([ ]
)로 둘러싸이고 쉼표(,
)로 구분되는 리스트 타입입니다.
> [1, 2, 3]
[1, 2, 3]
> ['Hello', 'World', 1, [1, 2, 3]]
[Hello, World, 1, [1, 2, 3]]
# function
함수입니다. 코드 여러 줄을 묶을 수 있습니다. 줄은 세미콜론으로 구분됩니다.
> () {
print "Wa";
print "sans"
}
function () { }
# null
비어있는 값을 나타냅니다
> null
# user
디스코드 유저를 저장하는 타입입니다.
# role
디스코드 역할을 저장하는 타입입니다.
# channel
디스코드 텍스트 채널을 저장하는 타입입니다.
# 형변환
Toast의 커맨드는 모두 파라미터와 리턴값의 타입이 미리 정해져있는 정적 타입 언어이기 때문에 명시적 형변환을 할 수 없습니다.
예를 들어 user
타입이 필요한 커맨드에 text
타입을 사용했다면 자동으로 해당 값을 user로 변환합니다.
> id of "OliveToast"
495209098929766400
다음 타입들은 모두 자동으로 변환됩니다.
any
-> text
text
-> number
text
-> float
text
-> list
text
-> user
: 유저네임, 닉네임, 맨션, id를 인식해 유저로 변환합니다.
number
-> user
: id를 사용해 유저로 변환합니다.
text
-> channel
: 채널이름, 맨션, id를 인식해 채널로 변환합니다.
number
-> channel
text
-> role
number
-> role
← 정규표현식