Skip to content

Latest commit

 

History

History
192 lines (142 loc) · 7.2 KB

std.md

File metadata and controls

192 lines (142 loc) · 7.2 KB

English translation has been left out of date for a long time. Please contribute!

標準定数・標準関数について

Aiscriptで最初から定義されていてどこでも使える定数・関数を指します。
standardを省略してstd定数/関数とも呼ばれています。

書式

#Core:v

Core:vという標準定数を表します。

@Core:type(v: value): str

Core:typeという標準関数を表します。
vという名のvalue型(つまり任意の型)の引数を一つとり、str型(文字列型)の値を返します。

一覧

std

@print(message: str): void

画面に文字列を表示します。

@readline(message: str): str

文字列の入力を受け付けます。

:: Core

#Core:v

型: str
AiScriptのバージョンです。

@Core:type(v: value): str

値の型名を取得します。

@Core:to_str(v: value): str

値を表す文字列を取得します。

@Core:sleep(time: num): void

指定時間(ミリ秒)待機します。

@Core:abort(message: str): never

プログラムを緊急停止します。

:: Util

@Util:uuid(): str

新しいUUIDを生成します。

:: Json

@Json:stringify(v: value): str

JSONを生成します。

@Json:parse(json: str): value

JSONをパースします。 引数がJSONとしてパース可能性でない場合、エラー型の値(name='not_json')を返します。

@Json:parsable(str: str): bool

文字列がJSONとしてパース可能であるかの判定を行います。歴史的理由により存在しています

:: Date

@Date:now(): num

現在時刻を取得します。

@Date:year(date?: num): num

時刻の年を取得します。
date を渡した場合、_date_に対応する年、
渡していない場合は現在時刻の年が返されます。

@Date:month(date?: num): num

現在時刻の月を取得します。
date を渡した場合、_date_に対応する月、
渡していない場合は現在時刻の月が返されます。

@Date:day(date?: num): num

現在時刻の日を取得します。
date を渡した場合、_date_に対応する日、
渡していない場合は現在時刻の日が返されます。

@Date:hour(date?: num): num

現在時刻の時を取得します。
date を渡した場合、_date_に対応する時、
渡していない場合は現在時刻の時が返されます。

@Date:minute(date?: num): num

現在時刻の分を取得します。
date を渡した場合、_date_に対応する分、
渡していない場合は現在時刻の分が返されます。

@Date:second(date?: num): num

現在時刻の秒を取得します。
date を渡した場合、_date_に対応する秒、
渡していない場合は現在時刻の秒が返されます。

@Date:millisecond(date?: num): num

現在時刻のミリ秒を取得します。
date を渡した場合、_date_に対応するミリ秒、
渡していない場合は現在時刻のミリ秒が返されます。

@Date:parse(date: str): num

日付として解釈可能な文字列から日時を表す数値を生成します。
解釈はJavaScriptのDateコンストラクターに依存します。
引数が日付として解釈可能でない場合、エラー型の値(name='not_date')を返します。

@Date:to_iso_str(date?: num, time_offset?: num): str

date を拡張表記のISO形式にした文字列を返します。
date を渡していない場合は現在時刻を使用します。
time_offset はUTCからの時差(分単位)を指定します。
time_offset を渡していない場合はローカルのものを参照します。

:: Math

数が多いため専用のページになっています。→std-math.md

:: Num

@Num:from_hex(hex: str): num

16進数の文字列から数値を生成します。

:: Str

#Str:lf

型: str
改行コード(LF)です。

@Str:lt(a: str, b: str): num

a < b ならば -1、a == b ならば 0、a > b ならば 1 を返します。
arr.sortの比較関数として使用できます。

@Str:gt(a: str, b: str): num

a > b ならば -1、a == b ならば 0、a < b ならば 1 を返します。
arr.sortの比較関数として使用できます。

@Str:from_codepoint(codepoint: num): str

Unicodeのコードポイントから文字を生成します。

codepoint は 0 以上、10FFFF16 以下である必要があります。

@Str:from_unicode_codepoints(codePoints: arr<num>): str

Unicodeのコードポイント列を表す数値の配列から文字を生成します。
_codePoints_の各要素は 0 以上、10FFFF16 以下である必要があります。

@Str:from_utf8_bytes(bytes: arr<num>): str

UTF-8のバイト列を表す数値の配列から文字を生成します。
_bytes_の各要素は 0 以上、255 以下である必要があります。

:: Uri

@Uri:encode_full(uri: str): str

uri をURIとしてエンコードした文字列を返します。以下の文字はエンコードされません。
A-Z a-z 0-9 - _ . ! ~ * ' ( ) ; , / ? : @ & = + $ #

@Uri:encode_component(text: str): str

text をURI構成要素としてエンコードした文字列を返します。以下の文字はエンコードされません。
A-Z a-z 0-9 - _ . ! ~ * ' ( )

@Uri:decode_full(encoded_uri: str): str

encoded_uri をエンコードされたURIとしてデコードした文字列を返します。
以下の文字に対応するエスケープシーケンスはデコードされません。
; , / ? : @ & = + $ #

@Uri:decode_component(encoded_text: str): str

encoded_text をエンコードされたURI構成要素としてデコードした文字列を返します。

:: Arr

@Arr:create(length: num, initial?: value): arr

長さがlengthの配列を作成します。
配列は initial が与えられていれば initial 、でなければnullで埋められます。

:: Obj

@Obj:keys(v: obj): arr

@Obj:vals(v: obj): arr

@Obj:kvs(v: obj): arr

オブジェクトのキー、値、キーと値の組を配列にして返します。

@Obj:get(v: obj, key: str): value

@Obj:set(v: obj, key: str, val: value): null

@Obj:has(v: obj, key: str): bool

@Obj:copy(v: obj): obj

オブジェクトのコピーを生成します。

@Obj:merge(o1: obj, o2: obj): obj

2つのオブジェクトを併合したものを返します。

:: Error

@Error:create(name: str, info?: value): error

エラー型の値を作成します。

:: Async

@Async:interval(interval: num, callback: fn, immediate?: bool): fn

指定した周期でコールバック関数を呼び出します。
戻り値として停止関数を返します。

@Async:timeout(delay: num, callback: fn):

指定した時間経過後にコールバック関数を呼び出します。
戻り値として停止関数を返します。