<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://alice.wsoft.ws/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Master</id>
	<title>AliceScript Wiki - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="https://alice.wsoft.ws/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Master"/>
	<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/Master"/>
	<updated>2026-07-03T20:16:52Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.35.13</generator>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=1290</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=1290"/>
		<updated>2023-12-30T11:26:39Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__=AliceScriptへようこそ=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot;&lt;br /&gt;
|+style=&amp;quot;white-space:nowrap&amp;quot;|[https://docs.wsoft.ws/products/alice/download AliceScriptのダウンロード]&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|AliceScript &lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://download.wsoft.ws/WS00280 3.0]&lt;br /&gt;
|-&lt;br /&gt;
|最新安定板&lt;br /&gt;
|[https://download.wsoft.ws/WS00280 3.0]&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|[[AliceSister]]&lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://download.wsoft.ws/WS00280 3.0]&lt;br /&gt;
|-&lt;br /&gt;
|最新安定板&lt;br /&gt;
|[https://download.wsoft.ws/WS00280 3.0]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|[https://github.com/WSOFT-Project/Losetta Losetta]&lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://github.com/WSOFT-Project/Losetta/releases 0.10.3]&lt;br /&gt;
|-&lt;br /&gt;
![[AliceEULA-R|規約]]&lt;br /&gt;
![[AliceScript_Wiki:著作権|著作権情報]]&lt;br /&gt;
|}&lt;br /&gt;
当面の間AliceScriptWikiのサイトを残す方針が決まりました。現在のAliceScriptWikiのサイトは読み取り専用となり、今後情報の更新はされません。&lt;br /&gt;
{{Accordion|AliceScriptは、.NET上で動作する汎用性のあるスクリプト言語です。 AliceScriptを使用すると簡単にアプリケーションを構築することができます。 AliceScriptはC#やPythonをルーツとしているため、C、C#、JavaScript、Pyhton、PHPのプログラマーであればすぐに使いこなすことができます...|AliceScriptには、簡単に高度なアプリケーションを作成するのに役立つ機能がいくつかあります。&amp;quot;ガページコレクション&amp;quot;には到達できず、使用されていないオブジェクトによって占有されたメモリを自動的に回収することができる機能があります。 &amp;quot;デリゲート&amp;quot;には自他のオブジェクトに対して簡単に連絡を取ることができる機能があります。&amp;quot;例外処理&amp;quot;には、エラーの検出と復旧を行うためのアプローチが用意されています。 AliceScriptは&amp;quot;統合型システム&amp;quot;を備えていますから、numberやstringなどの型を含めたすべての型はルートとなる一つのVariable型から派生しています。すべての型は、一般的な操作のセットを共有していますから、すべての型を一貫した方法で操作することができます。AliceScriptについてもっと詳しく知るには、[https://docs.wsoft.ws/products/alice/welcome/ AliceScriptのツアー]を参照してください。|true}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 14&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M1 2.828c.885-.37 2.154-.769 3.388-.893 1.33-.134 2.458.063 3.112.752v9.746c-.935-.53-2.12-.603-3.213-.493-1.18.12-2.37.461-3.287.811V2.828zm7.5-.141c.654-.689 1.782-.886 3.112-.752 1.234.124 2.503.523 3.388.893v9.923c-.918-.35-2.107-.692-3.287-.81-1.094-.111-2.278-.039-3.213.492V2.687zM8 1.783C7.015.936 5.587.81 4.287.94c-1.514.153-3.042.672-3.994 1.105A.5.5 0 0 0 0 2.5v11a.5.5 0 0 0 .707.455c.882-.4 2.303-.881 3.68-1.02 1.409-.142 2.59.087 3.223.877a.5.5 0 0 0 .78 0c.633-.79 1.814-1.019 3.222-.877 1.378.139 2.8.62 3.681 1.02A.5.5 0 0 0 16 13.5v-11a.5.5 0 0 0-.293-.455c-.952-.433-2.48-.952-3.994-1.105C10.413.809 8.985.936 8 1.783z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt; AliceScriptの新しいサイト:[https://docs.wsoft.ws/products/alice AliceScriptDocs]||0|24px}}&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 16&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5z&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt; [https://docs.wsoft.ws/products/alice/download AliceScriptのダウンロード] ||0|24px}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 16&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M0 2.5A1.5 1.5 0 0 1 1.5 1h11A1.5 1.5 0 0 1 14 2.5v10.528c0 .3-.05.654-.238.972h.738a.5.5 0 0 0 .5-.5v-9a.5.5 0 0 1 1 0v9a1.5 1.5 0 0 1-1.5 1.5H1.497A1.497 1.497 0 0 1 0 13.5v-11zM12 14c.37 0 .654-.211.853-.441.092-.106.147-.279.147-.531V2.5a.5.5 0 0 0-.5-.5h-11a.5.5 0 0 0-.5.5v11c0 .278.223.5.497.5H12z&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M2 3h10v2H2V3zm0 3h4v3H2V6zm0 4h4v1H2v-1zm0 2h4v1H2v-1zm5-6h2v1H7V6zm3 0h2v1h-2V6zM7 8h2v1H7V8zm3 0h2v1h-2V8zm-3 2h2v1H7v-1zm3 0h2v1h-2v-1zm-3 2h2v1H7v-1zm3 0h2v1h-2v-1z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt;  [https://docs.wsoft.ws/blog/migration-to-docs/ WSOFTのドキュメントの WSOFT Docs への移行に関する情報]||2|24px}} &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! AliceScriptの基礎 !! 主要な機能 !! 新機能&lt;br /&gt;
|-&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/welcome/ AliceScriptのツアー]&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/general/expression/ 式]&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/changelog/ 新機能の一覧]&lt;br /&gt;
|-&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/tutorial/begining-alice/ 初めてのAliceScript]&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/general/variable/ 変数]&lt;br /&gt;
| [[破壊的変更の一覧]]&lt;br /&gt;
|-&lt;br /&gt;
! つながる&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/api/ 関数リファレンス]&lt;br /&gt;
| [[互換性|バージョンの互換性]]&lt;br /&gt;
|-&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/me/ Alice（キャラクター）]&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/general/exception/ 例外]&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/tutorial/migration-from-wsoftscript/ WSOFTScriptからの移行]&lt;br /&gt;
|-&lt;br /&gt;
| [https://discord.gg/ZHyxYSeCeP Aliceプロジェクト公式コミュニティ]&lt;br /&gt;
| [[言語構造]]&lt;br /&gt;
| [[リリースノート]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=Debug_Print&amp;diff=1289</id>
		<title>Debug Print</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=Debug_Print&amp;diff=1289"/>
		<updated>2023-10-17T04:42:34Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/alice/diagnostics/debug_print/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
文字列または、指定されたオブジェクトの文字列表現をデバッグ出力に書き込み、続けて現在の行終端記号を書き込みます。&lt;br /&gt;
[[Category:Alice.Interpreter]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+debug_print&lt;br /&gt;
|-&lt;br /&gt;
|名前空間&lt;br /&gt;
|Alice.Interpreter&lt;br /&gt;
|-&lt;br /&gt;
|アセンブリ&lt;br /&gt;
|Alice.Runtime.dll&lt;br /&gt;
|-&lt;br /&gt;
|サポート&lt;br /&gt;
|AliceScriptRC2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==説明==&lt;br /&gt;
&amp;lt;code&amp;gt;void debug_print(variable value)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
与えられた変数&amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;の文字列表現を出力します。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;void debug_print(string text);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
与えられた文字列&amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt;を出力します&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;void debug_print(string format,params variable arg0,arg1,…);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
与えられた複合書式指定子&amp;lt;code&amp;gt;format&amp;lt;/code&amp;gt;を使用して後続の変数を整形し、その結果を出力します。&lt;br /&gt;
&lt;br /&gt;
==例==&lt;br /&gt;
次の例は、Debug_print関数を使用してHello,Worldを表示するコードです。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;debug_print(“Hello,World”);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
次の例は、aとbの加算の結果を表示するコードです。&lt;br /&gt;
&lt;br /&gt;
 a = 1;&lt;br /&gt;
 b = 2;&lt;br /&gt;
 debug_print(“a+b=”+(a+b));&lt;br /&gt;
 &lt;br /&gt;
 //出力:a+b=3&lt;br /&gt;
&lt;br /&gt;
上記の例は、複合書式指定子を使用して、次のように記述することも可能です。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;debug_print(“a+b={0}”,a+b);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
複合書式指定子を使用して複数の変数を表示することも可能です。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;debug_print(“a={0} , b={1} , a+b={2}”,a,b,a+b);&lt;br /&gt;
&lt;br /&gt;
//出力:a=1 , b=2 , a+b=3&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=1288</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=1288"/>
		<updated>2023-08-08T14:57:39Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__=AliceScriptへようこそ=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot;&lt;br /&gt;
|+style=&amp;quot;white-space:nowrap&amp;quot;|[https://docs.wsoft.ws/products/alice/download AliceScriptのダウンロード]&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|AliceScript &lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://download.wsoft.ws/WS00165 2.2]&lt;br /&gt;
|-&lt;br /&gt;
|最新安定板&lt;br /&gt;
|[https://download.wsoft.ws/WS00178 2.2.1]&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|[[AliceSister]]&lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://download.wsoft.ws/WS00166 2.2]&lt;br /&gt;
|-&lt;br /&gt;
|最新安定板&lt;br /&gt;
|[https://download.wsoft.gq/WS00179 2.2.1]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|[https://github.com/WSOFT-Project/Losetta Losetta]&lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://github.com/WSOFT-Project/Losetta/releases 0.9.20]&lt;br /&gt;
|-&lt;br /&gt;
![[AliceEULA-R|規約]]&lt;br /&gt;
![[AliceScript_Wiki:著作権|著作権情報]]&lt;br /&gt;
|}&lt;br /&gt;
当面の間AliceScriptWikiのサイトを残す方針が決まりました。現在のAliceScriptWikiのサイトは読み取り専用となり、今後情報の更新はされません。&lt;br /&gt;
{{Accordion|AliceScriptは、.NET上で動作する汎用性のあるスクリプト言語です。 AliceScriptを使用すると簡単にアプリケーションを構築することができます。 AliceScriptはC#やPythonをルーツとしているため、C、C#、JavaScript、Pyhton、PHPのプログラマーであればすぐに使いこなすことができます...|AliceScriptには、簡単に高度なアプリケーションを作成するのに役立つ機能がいくつかあります。&amp;quot;ガページコレクション&amp;quot;には到達できず、使用されていないオブジェクトによって占有されたメモリを自動的に回収することができる機能があります。 &amp;quot;デリゲート&amp;quot;には自他のオブジェクトに対して簡単に連絡を取ることができる機能があります。&amp;quot;例外処理&amp;quot;には、エラーの検出と復旧を行うためのアプローチが用意されています。 AliceScriptは&amp;quot;統合型システム&amp;quot;を備えていますから、numberやstringなどの型を含めたすべての型はルートとなる一つのVariable型から派生しています。すべての型は、一般的な操作のセットを共有していますから、すべての型を一貫した方法で操作することができます。AliceScriptについてもっと詳しく知るには、[https://docs.wsoft.ws/products/alice/welcome/ AliceScriptのツアー]を参照してください。|true}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 14&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M1 2.828c.885-.37 2.154-.769 3.388-.893 1.33-.134 2.458.063 3.112.752v9.746c-.935-.53-2.12-.603-3.213-.493-1.18.12-2.37.461-3.287.811V2.828zm7.5-.141c.654-.689 1.782-.886 3.112-.752 1.234.124 2.503.523 3.388.893v9.923c-.918-.35-2.107-.692-3.287-.81-1.094-.111-2.278-.039-3.213.492V2.687zM8 1.783C7.015.936 5.587.81 4.287.94c-1.514.153-3.042.672-3.994 1.105A.5.5 0 0 0 0 2.5v11a.5.5 0 0 0 .707.455c.882-.4 2.303-.881 3.68-1.02 1.409-.142 2.59.087 3.223.877a.5.5 0 0 0 .78 0c.633-.79 1.814-1.019 3.222-.877 1.378.139 2.8.62 3.681 1.02A.5.5 0 0 0 16 13.5v-11a.5.5 0 0 0-.293-.455c-.952-.433-2.48-.952-3.994-1.105C10.413.809 8.985.936 8 1.783z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt; AliceScriptの新しいサイト:[https://docs.wsoft.ws/products/alice AliceScriptDocs]||0|24px}}&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 16&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5z&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt; [https://docs.wsoft.ws/products/alice/download AliceScriptのダウンロード] ||0|24px}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 16&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M0 2.5A1.5 1.5 0 0 1 1.5 1h11A1.5 1.5 0 0 1 14 2.5v10.528c0 .3-.05.654-.238.972h.738a.5.5 0 0 0 .5-.5v-9a.5.5 0 0 1 1 0v9a1.5 1.5 0 0 1-1.5 1.5H1.497A1.497 1.497 0 0 1 0 13.5v-11zM12 14c.37 0 .654-.211.853-.441.092-.106.147-.279.147-.531V2.5a.5.5 0 0 0-.5-.5h-11a.5.5 0 0 0-.5.5v11c0 .278.223.5.497.5H12z&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M2 3h10v2H2V3zm0 3h4v3H2V6zm0 4h4v1H2v-1zm0 2h4v1H2v-1zm5-6h2v1H7V6zm3 0h2v1h-2V6zM7 8h2v1H7V8zm3 0h2v1h-2V8zm-3 2h2v1H7v-1zm3 0h2v1h-2v-1zm-3 2h2v1H7v-1zm3 0h2v1h-2v-1z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt;  [https://docs.wsoft.ws/blog/migration-to-docs/ WSOFTのドキュメントの WSOFT Docs への移行に関する情報]||2|24px}} &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! AliceScriptの基礎 !! 主要な機能 !! 新機能&lt;br /&gt;
|-&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/welcome/ AliceScriptのツアー]&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/general/expression/ 式]&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/changelog/ 新機能の一覧]&lt;br /&gt;
|-&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/tutorial/begining-alice/ 初めてのAliceScript]&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/general/variable/ 変数]&lt;br /&gt;
| [[破壊的変更の一覧]]&lt;br /&gt;
|-&lt;br /&gt;
! つながる&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/api/ 関数リファレンス]&lt;br /&gt;
| [[互換性|バージョンの互換性]]&lt;br /&gt;
|-&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/me/ Alice（キャラクター）]&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/general/exception/ 例外]&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/tutorial/migration-from-wsoftscript/ WSOFTScriptからの移行]&lt;br /&gt;
|-&lt;br /&gt;
| [https://discord.gg/ZHyxYSeCeP Aliceプロジェクト公式コミュニティ]&lt;br /&gt;
| [[言語構造]]&lt;br /&gt;
| [[リリースノート]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=1287</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=1287"/>
		<updated>2023-08-08T14:57:22Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__=AliceScriptへようこそ=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot;&lt;br /&gt;
|+style=&amp;quot;white-space:nowrap&amp;quot;|[https://docs.wsoft.ws/products/alice/download AliceScriptのダウンロード]&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|AliceScript &lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://download.wsoft.ws/WS00165 2.2]&lt;br /&gt;
|-&lt;br /&gt;
|最新安定板&lt;br /&gt;
|[https://download.wsoft.ws/WS00178 2.2.1]&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|[[AliceSister]]&lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://download.wsoft.ws/WS00166 2.2]&lt;br /&gt;
|-&lt;br /&gt;
|最新安定板&lt;br /&gt;
|[https://download.wsoft.gq/WS00179 2.2.1]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|[https://github.com/WSOFT-Project/Losetta Losetta]&lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://github.com/WSOFT-Project/Losetta/releases 0.9.20]&lt;br /&gt;
|-&lt;br /&gt;
![[AliceEULA-R|規約]]&lt;br /&gt;
![[AliceScript_Wiki:著作権|著作権情報]]&lt;br /&gt;
|}&lt;br /&gt;
当面の間AliceScriptWikiのサイトを残す方針が決まりました。現在のAliceScriptWikiのサイトは読み取り専用となり、今後情報の更新はされません。&lt;br /&gt;
{{Accordion|AliceScriptは、.NET上で動作する汎用性のあるスクリプト言語です。 AliceScriptを使用すると簡単にアプリケーションを構築することができます。 AliceScriptはC#やPythonをルーツとしているため、C、C#、JavaScript、Pyhton、PHPのプログラマーであればすぐに使いこなすことができます...|AliceScriptには、簡単に高度なアプリケーションを作成するのに役立つ機能がいくつかあります。&amp;quot;ガページコレクション&amp;quot;には到達できず、使用されていないオブジェクトによって占有されたメモリを自動的に回収することができる機能があります。 &amp;quot;デリゲート&amp;quot;には自他のオブジェクトに対して簡単に連絡を取ることができる機能があります。&amp;quot;例外処理&amp;quot;には、エラーの検出と復旧を行うためのアプローチが用意されています。 AliceScriptは&amp;quot;統合型システム&amp;quot;を備えていますから、numberやstringなどの型を含めたすべての型はルートとなる一つのVariable型から派生しています。すべての型は、一般的な操作のセットを共有していますから、すべての型を一貫した方法で操作することができます。AliceScriptについてもっと詳しく知るには、[https://docs.wsoft.ws/products/alice/welcome/ AliceScriptのツアー]を参照してください。|true}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 14&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M1 2.828c.885-.37 2.154-.769 3.388-.893 1.33-.134 2.458.063 3.112.752v9.746c-.935-.53-2.12-.603-3.213-.493-1.18.12-2.37.461-3.287.811V2.828zm7.5-.141c.654-.689 1.782-.886 3.112-.752 1.234.124 2.503.523 3.388.893v9.923c-.918-.35-2.107-.692-3.287-.81-1.094-.111-2.278-.039-3.213.492V2.687zM8 1.783C7.015.936 5.587.81 4.287.94c-1.514.153-3.042.672-3.994 1.105A.5.5 0 0 0 0 2.5v11a.5.5 0 0 0 .707.455c.882-.4 2.303-.881 3.68-1.02 1.409-.142 2.59.087 3.223.877a.5.5 0 0 0 .78 0c.633-.79 1.814-1.019 3.222-.877 1.378.139 2.8.62 3.681 1.02A.5.5 0 0 0 16 13.5v-11a.5.5 0 0 0-.293-.455c-.952-.433-2.48-.952-3.994-1.105C10.413.809 8.985.936 8 1.783z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt; AliceScriptの新しいサイト:[https://docs.wsoft.ws/products/alice AliceScriptDocs]||0|24px}}&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 16&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5z&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt; [https://docs.wsoft.ws/products/alice/download AliceScriptのダウンロード] ||0|24px}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 16&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M0 2.5A1.5 1.5 0 0 1 1.5 1h11A1.5 1.5 0 0 1 14 2.5v10.528c0 .3-.05.654-.238.972h.738a.5.5 0 0 0 .5-.5v-9a.5.5 0 0 1 1 0v9a1.5 1.5 0 0 1-1.5 1.5H1.497A1.497 1.497 0 0 1 0 13.5v-11zM12 14c.37 0 .654-.211.853-.441.092-.106.147-.279.147-.531V2.5a.5.5 0 0 0-.5-.5h-11a.5.5 0 0 0-.5.5v11c0 .278.223.5.497.5H12z&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M2 3h10v2H2V3zm0 3h4v3H2V6zm0 4h4v1H2v-1zm0 2h4v1H2v-1zm5-6h2v1H7V6zm3 0h2v1h-2V6zM7 8h2v1H7V8zm3 0h2v1h-2V8zm-3 2h2v1H7v-1zm3 0h2v1h-2v-1zm-3 2h2v1H7v-1zm3 0h2v1h-2v-1z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt;  [https://docs.wsoft.ws/blog/migration-to-docs/ WSOFTのドキュメントの WSOFT Docs への移行に関する情報]||2|24px}} &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! AliceScriptの基礎 !! 主要な機能 !! 新機能&lt;br /&gt;
|-&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/welcome/ AliceScriptのツアー]&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/general/statement/ 文]&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/general/expression/ 式]&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/changelog/ 新機能の一覧]&lt;br /&gt;
|-&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/tutorial/begining-alice/ 初めてのAliceScript]&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/general/variable/ 変数]&lt;br /&gt;
| [[破壊的変更の一覧]]&lt;br /&gt;
|-&lt;br /&gt;
! つながる&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/api/ 関数リファレンス]&lt;br /&gt;
| [[互換性|バージョンの互換性]]&lt;br /&gt;
|-&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/me/ Alice（キャラクター）]&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/general/exception/ 例外]&lt;br /&gt;
| [https://docs.wsoft.ws/products/alice/tutorial/migration-from-wsoftscript/ WSOFTScriptからの移行]&lt;br /&gt;
|-&lt;br /&gt;
| [https://discord.gg/ZHyxYSeCeP Aliceプロジェクト公式コミュニティ]&lt;br /&gt;
| [[言語構造]]&lt;br /&gt;
| [[リリースノート]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=1286</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=1286"/>
		<updated>2023-08-08T14:52:43Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__=AliceScriptへようこそ=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot;&lt;br /&gt;
|+style=&amp;quot;white-space:nowrap&amp;quot;|[https://docs.wsoft.ws/products/alice/download AliceScriptのダウンロード]&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|AliceScript &lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://download.wsoft.ws/WS00165 2.2]&lt;br /&gt;
|-&lt;br /&gt;
|最新安定板&lt;br /&gt;
|[https://download.wsoft.ws/WS00178 2.2.1]&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|[[AliceSister]]&lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://download.wsoft.ws/WS00166 2.2]&lt;br /&gt;
|-&lt;br /&gt;
|最新安定板&lt;br /&gt;
|[https://download.wsoft.gq/WS00179 2.2.1]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|[https://github.com/WSOFT-Project/Losetta Losetta]&lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://github.com/WSOFT-Project/Losetta/releases 0.9.20]&lt;br /&gt;
|-&lt;br /&gt;
![[AliceEULA-R|規約]]&lt;br /&gt;
![[AliceScript_Wiki:著作権|著作権情報]]&lt;br /&gt;
|}&lt;br /&gt;
当面の間AliceScriptWikiのサイトを残す方針が決まりました。現在のAliceScriptWikiのサイトは読み取り専用となり、今後情報の更新はされません。&lt;br /&gt;
{{Accordion|AliceScriptは、.NET上で動作する汎用性のあるスクリプト言語です。 AliceScriptを使用すると簡単にアプリケーションを構築することができます。 AliceScriptはC#やPythonをルーツとしているため、C、C#、JavaScript、Pyhton、PHPのプログラマーであればすぐに使いこなすことができます...|AliceScriptには、簡単に高度なアプリケーションを作成するのに役立つ機能がいくつかあります。&amp;quot;ガページコレクション&amp;quot;には到達できず、使用されていないオブジェクトによって占有されたメモリを自動的に回収することができる機能があります。 &amp;quot;デリゲート&amp;quot;には自他のオブジェクトに対して簡単に連絡を取ることができる機能があります。&amp;quot;例外処理&amp;quot;には、エラーの検出と復旧を行うためのアプローチが用意されています。 AliceScriptは&amp;quot;統合型システム&amp;quot;を備えていますから、numberやstringなどの型を含めたすべての型はルートとなる一つのVariable型から派生しています。すべての型は、一般的な操作のセットを共有していますから、すべての型を一貫した方法で操作することができます。AliceScriptについてもっと詳しく知るには、[[AliceScriptのツアー]]を参照してください。|true}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 14&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M1 2.828c.885-.37 2.154-.769 3.388-.893 1.33-.134 2.458.063 3.112.752v9.746c-.935-.53-2.12-.603-3.213-.493-1.18.12-2.37.461-3.287.811V2.828zm7.5-.141c.654-.689 1.782-.886 3.112-.752 1.234.124 2.503.523 3.388.893v9.923c-.918-.35-2.107-.692-3.287-.81-1.094-.111-2.278-.039-3.213.492V2.687zM8 1.783C7.015.936 5.587.81 4.287.94c-1.514.153-3.042.672-3.994 1.105A.5.5 0 0 0 0 2.5v11a.5.5 0 0 0 .707.455c.882-.4 2.303-.881 3.68-1.02 1.409-.142 2.59.087 3.223.877a.5.5 0 0 0 .78 0c.633-.79 1.814-1.019 3.222-.877 1.378.139 2.8.62 3.681 1.02A.5.5 0 0 0 16 13.5v-11a.5.5 0 0 0-.293-.455c-.952-.433-2.48-.952-3.994-1.105C10.413.809 8.985.936 8 1.783z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt; AliceScriptの新しいサイト:[https://docs.wsoft.ws/products/alice AliceScriptDocs]||0|24px}}&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 16&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5z&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt; [https://docs.wsoft.ws/products/alice/download AliceScriptのダウンロード] ||0|24px}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 16&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M0 2.5A1.5 1.5 0 0 1 1.5 1h11A1.5 1.5 0 0 1 14 2.5v10.528c0 .3-.05.654-.238.972h.738a.5.5 0 0 0 .5-.5v-9a.5.5 0 0 1 1 0v9a1.5 1.5 0 0 1-1.5 1.5H1.497A1.497 1.497 0 0 1 0 13.5v-11zM12 14c.37 0 .654-.211.853-.441.092-.106.147-.279.147-.531V2.5a.5.5 0 0 0-.5-.5h-11a.5.5 0 0 0-.5.5v11c0 .278.223.5.497.5H12z&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M2 3h10v2H2V3zm0 3h4v3H2V6zm0 4h4v1H2v-1zm0 2h4v1H2v-1zm5-6h2v1H7V6zm3 0h2v1h-2V6zM7 8h2v1H7V8zm3 0h2v1h-2V8zm-3 2h2v1H7v-1zm3 0h2v1h-2v-1zm-3 2h2v1H7v-1zm3 0h2v1h-2v-1z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt;  [https://docs.wsoft.ws/blog/migration-to-docs/ WSOFTのドキュメントの WSOFT Docs への移行に関する情報]||2|24px}} &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! AliceScriptの基礎 !! 主要な機能 !! 新機能&lt;br /&gt;
|-&lt;br /&gt;
| [[AliceScriptのツアー]]&lt;br /&gt;
| [[式]]&lt;br /&gt;
| [[新機能の一覧|AliceScriptの新機能]]&lt;br /&gt;
|-&lt;br /&gt;
| [[初めてのAliceScript]]&lt;br /&gt;
| [[変数]]&lt;br /&gt;
| [[破壊的変更の一覧]]&lt;br /&gt;
|-&lt;br /&gt;
! つながる&lt;br /&gt;
| [[関数リファレンス]]&lt;br /&gt;
| [[互換性|バージョンの互換性]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Alice（キャラクター）|AliceScript公式アンバサダー]]&lt;br /&gt;
| [[例外]]&lt;br /&gt;
| [[WSOFTScriptからの移行]]&lt;br /&gt;
|-&lt;br /&gt;
| [https://discord.gg/ZHyxYSeCeP Aliceプロジェクト公式コミュニティ]&lt;br /&gt;
| [[言語構造]]&lt;br /&gt;
| [[リリースノート]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=MediaWiki:Common.js&amp;diff=1285</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=MediaWiki:Common.js&amp;diff=1285"/>
		<updated>2023-06-30T13:48:56Z</updated>

		<summary type="html">&lt;p&gt;Master: ページの白紙化&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=MediaWiki:Common.js&amp;diff=1284</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=MediaWiki:Common.js&amp;diff=1284"/>
		<updated>2023-06-30T13:48:04Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;var script = document.createElement('script'); //変数名は適当なものにでも&lt;br /&gt;
script.src = &amp;quot;https://wsoft.ws/main.js&amp;quot;; //ファイルパス&lt;br /&gt;
document.body.appendChild(script); /*&amp;lt;body&amp;gt;に生成する場合はこちら*/&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Zen&amp;diff=1283</id>
		<title>利用者:Zen</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Zen&amp;diff=1283"/>
		<updated>2023-06-30T05:32:19Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://wsoft.ws/About/#people WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; algin=“center”&lt;br /&gt;
|+style=&amp;quot;white-space:nowrap&amp;quot;|&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|利用者情報&lt;br /&gt;
|Zen&lt;br /&gt;
|ライター&lt;br /&gt;
|広報担当&lt;br /&gt;
|}&lt;br /&gt;
==記事作成時のモットー==&lt;br /&gt;
記事を記述するときは「専門性」＝物事を細かく詳しく、よりも「簡略性」=物事をわかりやすく簡潔に、を意識して書いています。誤字脱字が多いですすみません。&lt;br /&gt;
&lt;br /&gt;
AliceScriptやこのサイトの開発にあたっていただいた協力について詳しく知るには[[AliceScript_Wiki:AliceScript_Wikiについて#謝辞|謝辞]]をご覧ください。&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Master&amp;diff=1282</id>
		<title>利用者:Master</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Master&amp;diff=1282"/>
		<updated>2023-06-30T05:31:21Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://wsoft.ws/About/#people WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; algin=“center”&lt;br /&gt;
|+style=&amp;quot;white-space:nowrap&amp;quot;|&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|利用者情報&lt;br /&gt;
|たい&lt;br /&gt;
|ライター&lt;br /&gt;
|開発担当&lt;br /&gt;
|管理者&lt;br /&gt;
|メール&lt;br /&gt;
|taisei@wsoft.ws&lt;br /&gt;
|}&lt;br /&gt;
この記事をご覧いただきありがとうございます。&lt;br /&gt;
MasterはこのWikiの(今のところ唯一の)管理者です。Masterは、現在、たいが担当しています。&lt;br /&gt;
=活動=&lt;br /&gt;
2021年4月、私はWSOFTScriptからフォークしたプログラミング言語の実装として、はじめてAliceScriptをビルドしました。当時はWSOFTScriptの軽量な実装として開発されたこのプロジェクトは、次第に言語仕様の面でもWSOFTScriptより優れた言語として独立しました。2021年8月にこのサイトを立ち上げて以来、AliceScriptのさまざまな機能を説明するべく、このサイトのたくさんの記事を執筆してきました。&lt;br /&gt;
&lt;br /&gt;
=方針=&lt;br /&gt;
それがシステム内で重要な項目であればあるほど、執筆した記事が利用者の体験に大きく影響を与えることを踏まえ、できる限り読者のみなさまにとってわかりやすい記事となるよう意識して執筆しています。特に、同じような構造の記事については、できる限り一貫性を保った記事となるよう努力しています。&lt;br /&gt;
&lt;br /&gt;
[https://twitter.com/WSOFT7 WSOFT公式Twitter]&lt;br /&gt;
&lt;br /&gt;
AliceScriptやこのサイトの開発にあたっていただいた協力について詳しく知るには[[AliceScript_Wiki:AliceScript_Wikiについて#謝辞|謝辞]]をご覧ください。&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E9%96%A2%E6%95%B0&amp;diff=1281</id>
		<title>関数</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E9%96%A2%E6%95%B0&amp;diff=1281"/>
		<updated>2023-06-30T00:17:35Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/alice/function/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
関数は、一連のステートメントが含まれているコードの集まりです。必要な引数を指定してプログラムから関数を呼び出すと、関数内のステートメントが実行されます。&lt;br /&gt;
[[Category:基本]][[Category:Alice(名前空間)]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+function&lt;br /&gt;
|-&lt;br /&gt;
|名前空間&lt;br /&gt;
|Alice&lt;br /&gt;
|-&lt;br /&gt;
|アセンブリ&lt;br /&gt;
|ローカル&lt;br /&gt;
|-&lt;br /&gt;
|サポート&lt;br /&gt;
|AliceScript1&lt;br /&gt;
|-&lt;br /&gt;
|属性&lt;br /&gt;
|言語構造&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=基本=&lt;br /&gt;
関数は、クラスやスコープ内で修飾子(&amp;lt;code&amp;gt;override&amp;lt;/code&amp;gt;や&amp;lt;code&amp;gt;virtual&amp;lt;/code&amp;gt;など)、関数の名前および引数を指定して宣言されます。&lt;br /&gt;
&lt;br /&gt;
引数はかっこで囲み、各引数をコンマで区切ります。括弧内を空にすると、関数で引数が不要なことを意味します。&lt;br /&gt;
&lt;br /&gt;
定義された関数は、関数の定義された後で使用できるようになります。&lt;br /&gt;
&lt;br /&gt;
次の例には&amp;lt;code&amp;gt;SayHello&amp;lt;/code&amp;gt;関数が定義されています。これをユーザー定義関数といいます。&amp;lt;code&amp;gt;SayHello&amp;lt;/code&amp;gt;が呼び出されたとき、標準出力にHello,World!を書き込みます。&lt;br /&gt;
&lt;br /&gt;
 function SayHello()&lt;br /&gt;
  {&lt;br /&gt;
    print(&amp;quot;Hello,World!&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
 SayHello();&lt;br /&gt;
&lt;br /&gt;
=戻り値=&lt;br /&gt;
&lt;br /&gt;
関数は、呼び出し元に&amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt;キーワードを使用して値を返すことができます。関数の戻り値は呼び出し元でそのまま値として使用できます。次に例を示します。&lt;br /&gt;
&lt;br /&gt;
 function ReturnHello()&lt;br /&gt;
  {&lt;br /&gt;
    return &amp;quot;Hello,World!&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
 print(ReturnHello());&lt;br /&gt;
 //出力:Hello,World!&lt;br /&gt;
&lt;br /&gt;
また、&amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt;キーワードは、関数の実行を中止します。任意の場面で関数の実行を中止したい場合、&lt;br /&gt;
値を持たない&amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt;キーワードを使用することができます。次に例を示します。&lt;br /&gt;
&lt;br /&gt;
 function ShowHello()&lt;br /&gt;
  {&lt;br /&gt;
    print(&amp;quot;Hello&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
    print(&amp;quot;Hello,(again)&amp;quot;);//この行は、returnキーワードよりも後にあるため実行されません&lt;br /&gt;
  }&lt;br /&gt;
 //出力:Hello&lt;br /&gt;
&lt;br /&gt;
=引数=&lt;br /&gt;
&lt;br /&gt;
関数を定義する際には、必要な引数の名前を指定します。呼び出し元のコードから関数を呼び出すときに引数に具体的な値を指定します。次に例を示します。&lt;br /&gt;
&lt;br /&gt;
 function AddNumber(numA,numB)&lt;br /&gt;
  {&lt;br /&gt;
    rerturn numA + numB;&lt;br /&gt;
  }&lt;br /&gt;
 AddNumber(1,2);//戻り値:3&lt;br /&gt;
&lt;br /&gt;
また、引数に&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;や&amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt;などの型指定修飾子を使用すると、その型の値のみを引数として受け入れるようになり、予期しない型を使用した呼び出しを防ぐことができます。次に例を示します。&lt;br /&gt;
&lt;br /&gt;
 function Add(number a,number b)&lt;br /&gt;
 {&lt;br /&gt;
    return a+b;&lt;br /&gt;
 }&lt;br /&gt;
 Add(1,2);//戻り値:3&lt;br /&gt;
 Add(&amp;quot;1&amp;quot;,&amp;quot;2&amp;quot;);//例外発生&lt;br /&gt;
&lt;br /&gt;
さらに、引数に&amp;lt;code&amp;gt;params&amp;lt;/code&amp;gt;キーワードを使用すると、可変長個の引数を受け取る引数を指定できます。&amp;lt;code&amp;gt;params&amp;lt;/code&amp;gt;の型は常にARRAYとなります。&lt;br /&gt;
一つの関数内では、&amp;lt;code&amp;gt;params&amp;lt;/code&amp;gt;キーワードより後に引数を指定することができません。次に例を示します。&lt;br /&gt;
&lt;br /&gt;
 function PrintAllArgs(params args)&lt;br /&gt;
  {&lt;br /&gt;
    foreach(arg in args)&lt;br /&gt;
    {&lt;br /&gt;
      print(arg);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
 PrintAllArgs(&amp;quot;Hello&amp;quot;,&amp;quot;World&amp;quot;);&lt;br /&gt;
 //出力:Hello&lt;br /&gt;
        World&lt;br /&gt;
 PrintAllArgs();&lt;br /&gt;
 //出力:(何も出力されません)&lt;br /&gt;
=スコープ=&lt;br /&gt;
関数は、変数と同じように、そのスコープ内で一意な名前である必要があります。スコープの範囲内では、基本的に同じ名前の関数を宣言することはできませんし、反対にスコープの外に出ると、その範囲内で定義した関数は使用できません。しかし、すでに定義された関数がオーバーライド可能属性を持っている場合は、&amp;lt;code&amp;gt;override&amp;lt;/code&amp;gt;修飾子を使ってその関数を上書きできます。次に例を示します。&lt;br /&gt;
 function virtual SayHello()&lt;br /&gt;
  {&lt;br /&gt;
     print(“Hello,World”);&lt;br /&gt;
  }&lt;br /&gt;
 SayHello();//出力例:Hello,World&lt;br /&gt;
 function override SayHello()&lt;br /&gt;
  {&lt;br /&gt;
     print(“Hello,Bonjur”);&lt;br /&gt;
  }&lt;br /&gt;
 SayHello();//出力例:Hello,Bonjur&lt;br /&gt;
その関数を、現在のスコープの範囲外で使用できるようにするには、その関数に&amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt;修飾子を使用することそれをグローバル関数として宣言する必要があります。次に例を示します。&lt;br /&gt;
 function RegisterGlobalFunction()&lt;br /&gt;
  {&lt;br /&gt;
      function global SayHello()&lt;br /&gt;
       {&lt;br /&gt;
           print(“Hello,World”);&lt;br /&gt;
       }&lt;br /&gt;
  }&lt;br /&gt;
 RegisterGlobalFunction();&lt;br /&gt;
 SayHello();//出力例:Hello,World&lt;br /&gt;
&lt;br /&gt;
=拡張メソッド=&lt;br /&gt;
拡張メソッドを使用すると、新規に型を作成することなく既存の型にメソッドを追加できます。拡張メソッドに使用する関数はグローバル関数である必要があり、現在の型の変数が代入される引数に&amp;lt;code&amp;gt;this&amp;lt;/code&amp;gt;キーワードを使用します。&lt;br /&gt;
&lt;br /&gt;
次の例は、現在の文字列の語数を数える(正確には、スペースで区切られた語の数を数える)&amp;lt;code&amp;gt;WorldCount&amp;lt;/code&amp;gt;メソッドをstring型に登録します。&lt;br /&gt;
 function global WordCount(this string str)&lt;br /&gt;
  {&lt;br /&gt;
     return str.Split(“ ”).Length;&lt;br /&gt;
  }&lt;br /&gt;
 var text = “Hello Extension Methods”;&lt;br /&gt;
 print(text.WordCount());//出力例:3&lt;br /&gt;
登録したい引数の型指定修飾子を&amp;lt;code&amp;gt;this&amp;lt;/code&amp;gt;キーワードの後に記述します。これを省略すると、&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型に登録されます。複数の&amp;lt;code&amp;gt;this&amp;lt;/code&amp;gt;キーワードを使用することはできません。拡張メソッドには&amp;lt;code&amp;gt;virtual&amp;lt;/code&amp;gt;属性および&amp;lt;code&amp;gt;override&amp;lt;/code&amp;gt;属性を付与することもできます。標準の型メソッドのオーバーライド可否については[[変数]]を参照してください。&lt;br /&gt;
=デリゲートへの暗黙的な変換=&lt;br /&gt;
ほとんどのネイティブ関数とユーザー定義関数は、[[デリゲート]]型の変数へと暗黙的に変換できます。ユーザー定義関数を丸括弧なしで呼び出すと、それはその関数をデリゲート型に変換されたオペランドと認識されます。次に例を示します。&lt;br /&gt;
 function SayHello()&lt;br /&gt;
  {&lt;br /&gt;
     print(“Hello,World”);&lt;br /&gt;
  }&lt;br /&gt;
 var hello=SayHello;//helloは、DELEGATE型を表します&lt;br /&gt;
 hello();//出力:Hello,World&lt;br /&gt;
ただし、以下の属性を持っている関数を暗黙的に変換することはできません。&lt;br /&gt;
*言語構造&lt;br /&gt;
*関数の区切り文字の空白をサポート&lt;br /&gt;
*単一の引数のみ関数の区切り文字の空白をサポート&lt;br /&gt;
また、FunctionBase型を継承しない関数も、この機能をサポートしません。&lt;br /&gt;
&lt;br /&gt;
=属性=&lt;br /&gt;
AliceScriptではさまざまな機能や構造が関数で設計されているため、必要に応じて関数に特別な機能を持たせることが可能です。属性の一覧を以下に示します。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+関数の属性&lt;br /&gt;
|-&lt;br /&gt;
|属性の名前&lt;br /&gt;
|修飾子&lt;br /&gt;
|概要&lt;br /&gt;
|-&lt;br /&gt;
|一般&lt;br /&gt;
|指定不要&lt;br /&gt;
|通常の関数です。引数などは自動的にチェックされ実行されます。&lt;br /&gt;
|-&lt;br /&gt;
|関数の区切り文字の空白をサポート&lt;br /&gt;
|指定不可&lt;br /&gt;
|関数の呼び出し時に丸括弧の代わりに空白文字が使用できます。&lt;br /&gt;
|-&lt;br /&gt;
|単一の引数のみ関数の区切り文字の空白をサポート&lt;br /&gt;
|指定不可&lt;br /&gt;
|関数の引数が一つのみの場合に関数の呼び出し時に丸括弧の代わりに空白文字が使用できます。&lt;br /&gt;
|-&lt;br /&gt;
|言語構造&lt;br /&gt;
|指定不可&lt;br /&gt;
|言語構造です。さまざまな形で使用できるため引数の自動チェックや最適化が実行されません。&lt;br /&gt;
|-&lt;br /&gt;
|オーバーライド可能&lt;br /&gt;
|virtual&lt;br /&gt;
|オーバーライド可能な関数です。&lt;br /&gt;
|-&lt;br /&gt;
|オーバーライド&lt;br /&gt;
|override&lt;br /&gt;
|既存の関数をオーバーライドします。この関数をオーバーライドすることもできます。&lt;br /&gt;
|-&lt;br /&gt;
|グローバル関数&lt;br /&gt;
|global&lt;br /&gt;
|すべてのスコープで使用可能な関数です。&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E3%83%87%E3%83%AA%E3%82%B2%E3%83%BC%E3%83%88&amp;diff=1280</id>
		<title>デリゲート</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E3%83%87%E3%83%AA%E3%82%B2%E3%83%BC%E3%83%88&amp;diff=1280"/>
		<updated>2023-06-30T00:16:27Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/delegate/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}[[Category:Alice(名前空間)]]&lt;br /&gt;
[[Category:基本]]&lt;br /&gt;
デリゲートは、AliceScriptにおける”匿名関数”のメカニズムです。デリゲートは匿名関数として、その場ですぐに実行したり、変数に代入したり、関数に引数として渡すことができます。&lt;br /&gt;
&lt;br /&gt;
例えば、蔵書検索アプリケーションを作成することを考えてみましょう。この検索の条件は、それと完全に一致する、それを含む、それを含まない、の3つが用意されています。いずれの場合も、Seartch()関数が行うことは基本的に同じです。つまり、なんらかの条件に基づいて一連の蔵書から項目を検索します。しかし、条件に基づいて検索するコードはそれぞれの条件によって異なります。&lt;br /&gt;
&lt;br /&gt;
そのような場面でデリゲートを使うと、変数のように値を変更することでプログラムの実行中に処理内容を切り替えることができます。Seartch関数に関連づけられているデリゲートを変更すればよいのです。&lt;br /&gt;
&lt;br /&gt;
ソフトウェアには、この種の手法が半世紀にわたって使用されてきました。AliceScriptのデリゲートは、さらに思い通りのプログラミングを実現します。&lt;br /&gt;
&lt;br /&gt;
デリゲートには次の特徴があります。&lt;br /&gt;
*デリゲートを使用すると、関数を引数として渡すことができます。&lt;br /&gt;
*デリゲートは、コールバック関数の仕組みを実現するのに使用できます。&lt;br /&gt;
*デリゲートは連結でき、たとえば、複数の関数を一度の呼び出しで実行することができます。&lt;br /&gt;
&lt;br /&gt;
この記事では&amp;lt;code&amp;gt;delegate&amp;lt;/code&amp;gt;キーワードまたはラムダ式によって提供される機能、&amp;lt;code&amp;gt;delegate&amp;lt;/code&amp;gt;型に実装される機能を説明します。&lt;br /&gt;
&lt;br /&gt;
[[Category:基本]][[Category:Alice(名前空間)]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+delegate&lt;br /&gt;
|-&lt;br /&gt;
|名前空間&lt;br /&gt;
|Alice&lt;br /&gt;
|-&lt;br /&gt;
|アセンブリ&lt;br /&gt;
|ローカル&lt;br /&gt;
|-&lt;br /&gt;
|サポート&lt;br /&gt;
|AliceScript1&lt;br /&gt;
|-&lt;br /&gt;
|属性&lt;br /&gt;
|言語構造&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==基本==&lt;br /&gt;
デリゲート型は、&amp;lt;code&amp;gt;delegate&amp;lt;/code&amp;gt;キーワードと、そのデリゲートの実行に必要な引数を指定して宣言されます。&lt;br /&gt;
&lt;br /&gt;
引数はかっこで囲み、各引数をコンマで区切ります。括弧内を空にすると、デリゲートは引数が不要なことを意味します。&lt;br /&gt;
&lt;br /&gt;
デリゲートを同期的に呼び出すには関数のように丸括弧を使用して呼び出すか、&amp;lt;code&amp;gt;Invoke&amp;lt;/code&amp;gt;メソッド使用し、非同期的に呼び出すには&amp;lt;code&amp;gt;BeginInvoke&amp;lt;/code&amp;gt;メソッドを使用します。&lt;br /&gt;
また基本的には、引数の指定方法や戻り値に関する詳細は関数と同じです。詳しく知るには[[関数]]の記事も参照してください。&lt;br /&gt;
&lt;br /&gt;
次の例にはデリゲートを生成し、それを&amp;lt;code&amp;gt;SayHello&amp;lt;/code&amp;gt;として定義します。&amp;lt;code&amp;gt;SayHello&amp;lt;/code&amp;gt;が呼び出されたとき、標準出力にHello,World!を書き込みます。&lt;br /&gt;
&lt;br /&gt;
 var SayHello = delegate()&lt;br /&gt;
  {&lt;br /&gt;
    print(&amp;quot;Hello,World!&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
 SayHello();//出力例:Hello,World!&lt;br /&gt;
==ラムダ式==&lt;br /&gt;
ラムダ式を用いてデリゲートを生成することもできます。[[式#ラムダ演算子|ラムダ演算子&amp;lt;code&amp;gt;=&amp;gt;&amp;lt;/code&amp;gt;]]は、引数指定部と式本体を分割する役割を持ちます。&lt;br /&gt;
&lt;br /&gt;
ラムダ式には、次の2つの形式があります。&lt;br /&gt;
===式形式のラムダ===&lt;br /&gt;
式形式のラムダは、次の形です。&lt;br /&gt;
 (input-parameters) =&amp;gt; expression&lt;br /&gt;
式形式のラムダは、呼び出された時にその式の値を返します。&lt;br /&gt;
例えば、次のような関数が定義されていたとします。この関数は、与えられた数&amp;lt;code&amp;gt;num&amp;lt;/code&amp;gt;を二乗した結果を返します。&lt;br /&gt;
 function pow(number num)&lt;br /&gt;
  {&lt;br /&gt;
    return num ** 2;&lt;br /&gt;
  }&lt;br /&gt;
 print(pow(2));//出力例:4&lt;br /&gt;
次の例は、この関数と等価な結果を返すデリゲートをラムダ式で定義する例です。&lt;br /&gt;
 var pow = (number num) =&amp;gt; num ** 2;&lt;br /&gt;
 print(pow(2));//出力例:4&lt;br /&gt;
===ステートメント形式のラムダ===&lt;br /&gt;
ステートメント形式のラムダは次の形です。&lt;br /&gt;
 (input-parameters) =&amp;gt; { &amp;lt;sequence-of-statements&amp;gt; }&lt;br /&gt;
式形式のラムダとの違いは、ステートメント形式のラムダの本体が任意の数のステートメントで構成できる点と、&amp;lt;code&amp;gt;return&amp;lt;/code&amp;gt;キーワードを使用することでのみ値を返すことができることです。次の例では、&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;を二乗した値を出力するデリゲートを&amp;lt;code&amp;gt;powoutput&amp;lt;/code&amp;gt;という名前で宣言します。&lt;br /&gt;
 var powoutput = (x) =&amp;gt;&lt;br /&gt;
  {&lt;br /&gt;
    var powed = x*x;&lt;br /&gt;
    print(x);&lt;br /&gt;
  };&lt;br /&gt;
 powoutput(2);//出力例:4&lt;br /&gt;
==関数からの暗黙的な変換==&lt;br /&gt;
ほとんどのネイティブ関数とユーザー定義関数は、デリゲート型の変数へと暗黙的に変換できます。ユーザー定義関数を丸括弧なしで呼び出すと、それはその関数をデリゲート型に変換されたオペランドと認識されます。次に例を示します。&lt;br /&gt;
 function SayHello()&lt;br /&gt;
  {&lt;br /&gt;
     print(“Hello,World”);&lt;br /&gt;
  }&lt;br /&gt;
 var hello=SayHello;//helloは、DELEGATE型を表します&lt;br /&gt;
 hello();//出力:Hello,World&lt;br /&gt;
ただし、以下の属性を持っている関数を暗黙的に変換することはできません。&lt;br /&gt;
*言語構造&lt;br /&gt;
*関数の区切り文字の空白をサポート&lt;br /&gt;
*単一の引数のみ関数の区切り文字の空白をサポート&lt;br /&gt;
また、FunctionBase型を継承しない関数も、この機能をサポートしません。&lt;br /&gt;
&lt;br /&gt;
関数の属性について詳しく知るには、[[関数#属性|関数]]の記事を参照してください。&lt;br /&gt;
==デリゲートの組み合わせ==&lt;br /&gt;
デリゲート型は、複数のデリゲートを一つに結合することができます。組み合わされたデリゲートの各ステートメントは、順番に実行され、&amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt;文を使用して一つずつに分解することも可能です。上記の例ですでに&amp;lt;code&amp;gt;SayHello&amp;lt;/code&amp;gt;を定義しましたから、もう一つ、&amp;lt;code&amp;gt;SayBonjur&amp;lt;/code&amp;gt;デリゲートを定義し、それらを結合して実行する例を示します。&lt;br /&gt;
 var SayBonjur = delegate()&lt;br /&gt;
  {&lt;br /&gt;
     print(“Bonjur”);&lt;br /&gt;
  }&lt;br /&gt;
 var Say = SayHello+SayBonjur;&lt;br /&gt;
 Say();&lt;br /&gt;
 //出力例:Hello,World!&lt;br /&gt;
 //     :Bonjur&lt;br /&gt;
==イベント駆動型プログラム==&lt;br /&gt;
イベント駆動型プログラムは例えば「キーボードが押下された」とか、「マウスが移動した」などの受動的なイベントの発生によってコードが実行されるプログラムです。AliceScriptでは、デリゲート型とその組み合わせによって実現できます。ここでは簡単なサンプルとして、1秒おきにHello,Worldを表示し続け、それをeキーが押下されたときに停止するプログラムを作成します。このコードでは非同期的に1秒前にHello,Worldを表示し続け、同時に同期的にキーの押下を待機し続け、なんらかのキーが押下されたときに&amp;lt;code&amp;gt;OnkeyDown&amp;lt;/code&amp;gt;にキーの情報を渡して呼び出します。&lt;br /&gt;
&lt;br /&gt;
 var OnKeyDown;&lt;br /&gt;
 (()=&amp;gt;{&lt;br /&gt;
   //非同期に実行されるコード&lt;br /&gt;
   while(true)&lt;br /&gt;
    {&lt;br /&gt;
       OnKeyDown(Console_ReadKey());&lt;br /&gt;
    }&lt;br /&gt;
 }).BeginInvoke();&lt;br /&gt;
 &lt;br /&gt;
 //OnKeyDownに次のコードをイベントハンドラとして登録します&lt;br /&gt;
 OnKeyDown+=(key)=&amp;gt;&lt;br /&gt;
  {&lt;br /&gt;
     if(key==“e”)&lt;br /&gt;
      {&lt;br /&gt;
          exit;&lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
  while(true)&lt;br /&gt;
   {&lt;br /&gt;
      print(“Hello,World”);&lt;br /&gt;
      delay(1000);&lt;br /&gt;
   }&lt;br /&gt;
実際に実行すると次のように動作します。&lt;br /&gt;
 Hello,World&lt;br /&gt;
 Hello,World&lt;br /&gt;
 Hello,World&lt;br /&gt;
 Hello,World&lt;br /&gt;
 eキーを押下すると終了します&lt;br /&gt;
&lt;br /&gt;
=Invoke=&lt;br /&gt;
 variable delegate.Invoke(params args);&lt;br /&gt;
現在のデリゲートに指定された引数を渡して実行し、その戻り値を返します。&lt;br /&gt;
=BeginInvoke=&lt;br /&gt;
 void delegate.BeginInvoke(params args);&lt;br /&gt;
現在のデリゲートをすべて非同期で実行します。&lt;br /&gt;
=Length/Count=&lt;br /&gt;
 number delegate.Length;&lt;br /&gt;
 number delegate.Count;&lt;br /&gt;
現在のデリゲートに含まれる要素の数を返します。&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E3%82%B3%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0%E8%A6%8F%E7%B4%84&amp;diff=1279</id>
		<title>コーディング規約</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E3%82%B3%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0%E8%A6%8F%E7%B4%84&amp;diff=1279"/>
		<updated>2023-06-30T00:15:34Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/general/coding-style/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
コーディング規約は、よりよいプログラムを作るために推奨されるルールのことです。コーディング規約には、次の目的があります。&lt;br /&gt;
*コードの見た目が統一されるため、コードを読むときに、内容が理解しやすくなります。&lt;br /&gt;
*コードの複製、変更、および保守が容易になります。&lt;br /&gt;
=名前付け規則=&lt;br /&gt;
ÅliceScriptコードを記述するときに考慮するべき名前付け規則がいくつかあります。&lt;br /&gt;
==パスカルケース==&lt;br /&gt;
パスカルケースとは、語間の空白を取り除いて連結し、構成語の先頭を大文字にする記法を指します。AliceScriptでは、&amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;の名前付けにパスカルケースを使用することを推奨します。&lt;br /&gt;
 class TestClass&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;code&amp;gt;interface&amp;lt;/code&amp;gt;に名前をつけるときには、パスカルケースを使用するだけでなく、その名前の先頭に&amp;lt;code&amp;gt;I&amp;lt;/code&amp;gt;を付けます。これにより、コードの読み手にそれが&amp;lt;code&amp;gt;interface&amp;lt;/code&amp;gt;であることが伝わります。&lt;br /&gt;
 interface ITestInterface&lt;br /&gt;
 {&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88&amp;diff=1278</id>
		<title>イベント</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88&amp;diff=1278"/>
		<updated>2023-06-30T00:14:44Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/general/event/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
イベントとはプログラム内でなんらかの動作、出来事が発生したことを知ることを目的としたプログラミング手法です。&lt;br /&gt;
プログラム内でイベントが発生すると、指定された処理を行うことができます。(例えば「キーが押された」など)&lt;br /&gt;
AliceScriptのイベントは、デリゲートを用いて実現することができます。次の例ではコンソールにオブジェクトを出力するイベントデリゲート&amp;lt;code&amp;gt;Output&amp;lt;/code&amp;gt;とイベントが発生したときに呼び出される&amp;lt;code&amp;gt;OnOutput&amp;lt;/code&amp;gt;関数を定義し、最後に&amp;lt;code&amp;gt;”Hello,World”&amp;lt;/code&amp;gt;を渡して&amp;lt;code&amp;gt;Output&amp;lt;/code&amp;gt;イベントを発生させます。&lt;br /&gt;
 var Output = delegate.Activate();&lt;br /&gt;
 function OnOutput(v)&lt;br /&gt;
   {&lt;br /&gt;
       print(v);&lt;br /&gt;
   }&lt;br /&gt;
 Output += OnOutput;&lt;br /&gt;
 &lt;br /&gt;
 Output(“Hello,World”);//出力例:Hello,World&lt;br /&gt;
&lt;br /&gt;
もちろん、イベントの購読にデリゲートを使うこともできます。上の例をラムダ式を使ってより簡潔に記述すると次のようになります。&lt;br /&gt;
 var Output = new Delegate();&lt;br /&gt;
 Output += (v) =&amp;gt; print(v);&lt;br /&gt;
 &lt;br /&gt;
 Output(“Hello,World”);//出力例:Hello,World&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=AliceScript%E3%81%AE%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89&amp;diff=1277</id>
		<title>AliceScriptのダウンロード</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=AliceScript%E3%81%AE%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89&amp;diff=1277"/>
		<updated>2023-06-30T00:13:39Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/download/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}} &lt;br /&gt;
=AliceScriptのダウンロード=&lt;br /&gt;
AliceScriptには、開発環境を含めたADK版と通常版の二種類が存在します。&lt;br /&gt;
&lt;br /&gt;
通常版には、AliceScriptパッケージファイル(.ice)や、AliceScriptソースファイル(.Alice)を実行するために必要なファイルが含まれています。&lt;br /&gt;
&lt;br /&gt;
ADK版には、それ単体でファイルを実行したり開発したりする前に必要なスクリプト等が含まれています。AliceScriptで何かを開発する予定がある方はこちらを選択してください。AliceScriptADKについて詳しくは[[AliceScriptADK]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
ダウンロードしてインストールする前に、お使いのコンピュータに.NETCore3.1がインストールされていることを確認してください。&lt;br /&gt;
&lt;br /&gt;
*新機能については[[新機能の一覧|AliceScriptの新機能]]を参照してください。&lt;br /&gt;
*このソフトウェアに含まれるソフトウェアの著作権情報については[[AliceScript_Wiki:著作権|著作権情報]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;h1&amp;gt;[https://download.wsoft.gq/WS00003 AliceScriptADK GM(最新版・安定版)のダウンロード]&amp;lt;/h1&amp;gt;&lt;br /&gt;
*&amp;lt;h3&amp;gt;[https://download.wsoft.gq/WS00005 AliceScriptADK RC2(以前のバージョン)のダウンロード]&amp;lt;/h3&amp;gt;&lt;br /&gt;
*&amp;lt;h3&amp;gt;[https://download.wsoft.gq/WS00007 AliceScriptADK RC1(以前のバージョン)のダウンロード]&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=AliceSisterのダウンロード=&lt;br /&gt;
AliceSisterは、WSOFTによるもう一つのAliceModelの実装です。AliceSisterは.NETFramework上で動作するため、Windows8.1以降であれば.NETランタイムのインストールなしで実行することができます。AliceSisterには、開発環境を含めたADK版と通常版の二種類が存在します。&lt;br /&gt;
&lt;br /&gt;
{{Alert|&lt;br /&gt;
AliceSisterは、AliceScriptの開発に追従して、[[AliceModel]]の実装に加え、できるだけAliceScriptと同じ機能が提供されます。&lt;br /&gt;
&amp;lt;br/&amp;gt;現在のところAliceSisterは引き続き開発され、それが終了する予定はありません。すでに開発されているAliceSister専用アプリは移行する必要はありませんが、新規開発においてはできるだけ[[AliceModel]]の各実装に依存しないコードを使うとともに、ターゲットの限定が必要な場合はAliceScriptをご使用されることをお勧めします。|注意|4&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
通常版には、AliceScriptパッケージファイル(.ice)や、AliceScriptソースファイル(.Alice)を実行するために必要なファイルが含まれています。&lt;br /&gt;
&lt;br /&gt;
ADK版には、それ単体でファイルを実行したり開発したりする前に必要なスクリプト等が含まれています。AliceScriptで何かを開発する予定がある方はこちらを選択してください。AliceScriptADKについて詳しくは[[AliceScriptADK]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
ダウンロードしてインストールする前に、お使いのコンピュータに.NETFramework4.5.2またはそれ以降がインストールされていることを確認してください。&lt;br /&gt;
&lt;br /&gt;
*新機能については[[新機能の一覧|AliceScriptの新機能]]を参照してください。&lt;br /&gt;
*このソフトウェアに含まれるソフトウェアの著作権情報については[[AliceScript_Wiki:著作権|著作権情報]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;h1&amp;gt;[https://download.wsoft.gq/WS00004 AliceSisterADK GM(最新版・安定版)のダウンロード]&amp;lt;/h1&amp;gt;&lt;br /&gt;
*&amp;lt;h3&amp;gt;[https://download.wsoft.gq/WS00006 AliceSistertADK RC2(以前のバージョン)のダウンロード]&amp;lt;/h3&amp;gt;&lt;br /&gt;
*&amp;lt;h3&amp;gt;[https://download.wsoft.gq/WS00008 AliceSistertADK RC1(以前のバージョン)のダウンロード]&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=その他のファイルのダウンロード=&lt;br /&gt;
いずれのファイルに関する著作権情報についても[[AliceScript_Wiki:著作権|著作権情報]]と、ファイルに同梱されている場合は、その情報も確認してください。AliceScriptに関連するすべてのダウンロードは[https://download.wsoft.gq/AliceScript WSOFTダウンロードセンター]を参照してください。&lt;br /&gt;
*[https://download.wsoft.gq/WS00086 AliceScript公式アンバサダーのVRMモデル]&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=AliceScriptADK&amp;diff=1276</id>
		<title>AliceScriptADK</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=AliceScriptADK&amp;diff=1276"/>
		<updated>2023-06-30T00:12:49Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/general/alice-adk/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}[[Category:基本]]&lt;br /&gt;
AliceScript Assessment Development Kitは、AliceScriptのSDK(Software Development Kit)に相当するキットです。&lt;br /&gt;
&lt;br /&gt;
==はじめに==&lt;br /&gt;
AliceScript評価および開発キット(AliceScriptADK)には、AliceScriptのシステム、ライブラリ、パッケージや&lt;br /&gt;
その上で動作するアプリケーションやパフォーマンスをテストしたり、実際にAliceScriptの開発を体験するために必要なツールが含まれています。&lt;br /&gt;
詳しくは、AliceScriptホームページを参照してください。&lt;br /&gt;
https://alice.wsoft.gq/&lt;br /&gt;
&lt;br /&gt;
==AliceScriptADKには次のツールが含まれています==&lt;br /&gt;
AliceScriptインタプリタの実体であるAliceScript.dll&lt;br /&gt;
&lt;br /&gt;
AliceScriptを実行するためのコマンドラインインタフェースであるalice.exeとそれに付随するファイルおよびライブラリ&lt;br /&gt;
&lt;br /&gt;
AliceScriptで標準的な機能を実行するために必要な関数やオブジェクトを定義するAlice.Runtime.dll&lt;br /&gt;
&lt;br /&gt;
==AliceScriptADKの使い方==&lt;br /&gt;
Run.batをダブルクリックすると、初めからalice.txtに書き込まれているサンプルプログラムが起動します。&lt;br /&gt;
&lt;br /&gt;
alice.txtを編集することでAliceScriptの開発を行うことができます。&lt;br /&gt;
&lt;br /&gt;
(※alice.txtはMITライセンスです。自己責任で自由に改変等を行っていただいて構いません。)&lt;br /&gt;
&lt;br /&gt;
==AliceScript/SisterADKは以下の環境で動作します==&lt;br /&gt;
AliceScriptADKを使用する場合は.NETCore3.1がインストールされたx64、AMD64、ARM64、x86アーキテクチャを搭載したコンピュータ。&lt;br /&gt;
&lt;br /&gt;
AliceSisterADKを使用する場合は.NETFrameworkがインストールされたx64、AMD64、x86アーキテクチャを搭載したWindowsコンピュータ。&lt;br /&gt;
&lt;br /&gt;
ただし、Windows11/WindowsServer2022ではx86アーキテクチャはサポートされません。&lt;br /&gt;
&lt;br /&gt;
==[[AliceScriptのダウンロード]]==&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=Print&amp;diff=1275</id>
		<title>Print</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=Print&amp;diff=1275"/>
		<updated>2023-06-30T00:11:33Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/alice/print/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
文字列または、指定されたオブジェクトの文字列表現を標準出力に書き込み、続けて現在の行終端記号を書き込みます。&lt;br /&gt;
[[Category:Alice(名前空間)]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Print&lt;br /&gt;
|-&lt;br /&gt;
|名前空間&lt;br /&gt;
|Alice&lt;br /&gt;
|-&lt;br /&gt;
|アセンブリ&lt;br /&gt;
|ローカル&lt;br /&gt;
|-&lt;br /&gt;
|サポート&lt;br /&gt;
|AliceScript1 &lt;br /&gt;
|-&lt;br /&gt;
|[[関数の区切りの空白をサポート]]&lt;br /&gt;
|はい&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==説明==&lt;br /&gt;
&amp;lt;code&amp;gt;void print(variable value)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
与えられた変数&amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;の文字列表現を出力します。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;void print(string text);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
与えられた文字列&amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt;を出力します&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;void print(string format,params variable arg0,arg1,…);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
与えられた複合書式指定子&amp;lt;code&amp;gt;format&amp;lt;/code&amp;gt;を使用して後続の変数を整形し、その結果を出力します。&lt;br /&gt;
&lt;br /&gt;
==例==&lt;br /&gt;
次の例は、Print関数を使用してHello,Worldを表示するコードです。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;print(“Hello,World”);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[関数の区切りの空白をサポート]]していますから、丸括弧の代わりに空白を使用して記述することも可能です。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;print “Hello,World”;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
次の例は、aとbの加算の結果を表示するコードです。&lt;br /&gt;
&lt;br /&gt;
 a = 1;&lt;br /&gt;
 b = 2;&lt;br /&gt;
 print(“a+b=”+(a+b));&lt;br /&gt;
 &lt;br /&gt;
 //出力:a+b=3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
上記の例は、複合書式指定子を使用して、次のように記述することも可能です。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;print(“a+b={0}”,a+b);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
複合書式指定子を使用して複数の変数を表示することも可能です。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;print(“a={0} , b={1} , a+b={2}”,a,b,a+b);&lt;br /&gt;
&lt;br /&gt;
//出力:a=1 , b=2 , a+b=3&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=AlicePackage&amp;diff=1274</id>
		<title>AlicePackage</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=AlicePackage&amp;diff=1274"/>
		<updated>2023-06-29T01:43:09Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:基本]]&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/general/alice-package/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
AlicePackageは、プログラムのスクリプト、リソース、ライブラリやパッケージを含むAliceModelで実行できるアプリパッケージ形式です。&lt;br /&gt;
&lt;br /&gt;
AlicePackageファイルはそのマジックナンバー「ICE」（16進表現で&amp;lt;code&amp;gt;49 43 45&amp;lt;/code&amp;gt;とパッケージタイプを表す1バイトで識別できます。&lt;br /&gt;
&lt;br /&gt;
AlicePackageを作成する方法について知るには、[[パッケージのビルド|チュートリアル:パッケージのビルド]]を参照してください。&lt;br /&gt;
=ファイル構造=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+AlicePackageの構造&lt;br /&gt;
|長さ&lt;br /&gt;
|内容&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|マジックナンバー&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|ファイルスイッチ&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|予備領域&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|制御コード&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|解凍用データ &lt;br /&gt;
|-&lt;br /&gt;
|↓&lt;br /&gt;
|パッケージコンテンツ&lt;br /&gt;
|}&lt;br /&gt;
=ファイルスイッチ=&lt;br /&gt;
ファイルスイッチは、パッケージ前方にある8ビット(1バイト)の領域です。それぞれのビットには、パッケージの性質を表すフラグが含まれます。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ファイルスイッチ&lt;br /&gt;
|インデックス&lt;br /&gt;
|内容&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|署名済みパッケージの場合1&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|(未使用)&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|(未使用)&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|(未使用)&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|(未使用)&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|(未使用)&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|(未使用)&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|(未使用)&lt;br /&gt;
|}&lt;br /&gt;
=制御コード=&lt;br /&gt;
AlicePackageのヘッダに含まれる16バイトの領域は制御コードと呼ばれ、この領域を直接[[AliceModel]]が使用することはありません。しかし、[[AliceModel]]を実装するそれぞれのインタプリタによって使用される場合があります。この領域の標準的な使用方法はどの[[AliceModel]]の実装を使用しているかを識別sるのに使用されます。&lt;br /&gt;
=署名=&lt;br /&gt;
AlicePackageにデジタル署名を添付することで、そのパッケージファイルが改竄されておらず、正しい提供元から提供されていることを確認することができます。署名されたAlicePackageは、未書名のパッケージファイルに比べて実行されるまで時間がかかります。署名済みAlicePackageのファイルスイッチには1が立ちます。&lt;br /&gt;
&lt;br /&gt;
署名するAlicePackageには、パッケージコンテナの最上部に&amp;lt;code&amp;gt;certificate.pfx&amp;lt;/code&amp;gt;ファイルを(このままの名前で)配置する必要があります。PFXファイルは、パッケージの検証に必要な証明書を表すファイルです。署名の検証はパッケージマニフェストファイルが読み込まれる前に読み込まれます。&lt;br /&gt;
&lt;br /&gt;
=パッケージマニフェストファイル=&lt;br /&gt;
すべてのパッケージは、パッケージコンテナの最上部に&amp;lt;code&amp;gt;manifest.xml&amp;lt;/code&amp;gt;ファイルを（このままの名前で）配置する必要があります。パッケージマニフェストファイルは、パッケージに関する情報をビルドツールやAlice.Interpreterに説明するものです。まずは次の例を参照してください。&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;package&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;Hello,Package&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;version&amp;gt;1.0&amp;lt;/version&amp;gt;&lt;br /&gt;
  &amp;lt;publisher&amp;gt;WSOFT&amp;lt;/publisher&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;Hello,World!とだけ表示します&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    print(&amp;quot;Hello,World!&amp;quot;);&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;target&amp;gt;any&amp;lt;/target&amp;gt;&lt;br /&gt;
 &amp;lt;/package&amp;gt;&lt;br /&gt;
パッケージマニフェストファイルは、XML形式で、少なくとも次の情報を記述する必要があります。&lt;br /&gt;
*Name属性&lt;br /&gt;
Name属性は、このパッケージの名前を表します。&lt;br /&gt;
*Script属性&lt;br /&gt;
Script属性は、このパッケージのエントリポイントを表します。このパッケージが読み込まれたとき、AliceScriptインタプリンタはエントリポイントに記述された内容を順番に実行します。&lt;br /&gt;
Script属性の指定には、インラインスクリプトを使用する方法と、有効なスクリプトへのリンクを使う方法の二通りがあります。例えば、別のスクリプトファイルである&amp;lt;code&amp;gt;main.alice&amp;lt;/code&amp;gt;をエントリポイントとして使用するには、次のように指定します。&lt;br /&gt;
 &amp;lt;script path=“main.alice” /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E5%A4%89%E6%95%B0&amp;diff=1273</id>
		<title>変数</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E5%A4%89%E6%95%B0&amp;diff=1273"/>
		<updated>2023-06-29T01:40:24Z</updated>

		<summary type="html">&lt;p&gt;Master: /* type型 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/general/variable/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
変数は、AliceScriptにおける主要な概念の一つです。変数は、任意の場所で宣言定義でき、その値を取り出したり代入することができます。&lt;br /&gt;
この記事では、多くの変数に共通する事項を説明した後、それぞれの型の特徴について説明します。&lt;br /&gt;
変数は、すべて基となる&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;から派生しています。これは、すべての変数に共通した操作セットを提供します。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの変数は、文字またはアンダースコアから始まり、任意の数の文字、数字、記号が続きます。[[キーワード|予約語]]を使用することはできません。次の例では、&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;という変数に&amp;lt;code&amp;gt;123&amp;lt;/code&amp;gt;を代入し定義します。その後で、その変数の値を[[Print]]関数を使って出力します。&lt;br /&gt;
 var a = 123;&lt;br /&gt;
 print(a);&lt;br /&gt;
通常、変数に代入されるのは常にその値です。つまり、ある変数に式の値を代入するとその値への参照が代入されます。&lt;br /&gt;
通常、変数を定義する際は次の形で宣言します。&lt;br /&gt;
 var (修飾子) 名前 = 値;&lt;br /&gt;
&lt;br /&gt;
=ローカル変数とスコープ=&lt;br /&gt;
変数はその有効な範囲内で、一意な名前である必要があります。この範囲をその変数のスコープと呼びます。スコープの範囲内では、同じ名前の変数を定義することはできませんし、反対にスコープの外に出ると、その範囲内で定義した変数は使用できません。&lt;br /&gt;
AliceScriptでいうところのスコープの範囲は、原則としてそのコードのブロック内です。コードのブロックは、およそそのコードの波括弧の中を指します。次の例を参照してください。&lt;br /&gt;
 function Func()&lt;br /&gt;
  {&lt;br /&gt;
      var a = 123;&lt;br /&gt;
  }&lt;br /&gt;
 Func();&lt;br /&gt;
 print(a);//例外発生&lt;br /&gt;
上記の例ではFuncを呼び出すことで、ローカル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が定義されていますがそのスコープの範囲外での呼び出しのため、関数外で変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;を使用することはできません。また、インクルードしたファイルに対してもスコープが適用されます。このため、異なるスクリプトファイル間でローカル変数を共有することはできません。&lt;br /&gt;
=グローバル変数=&lt;br /&gt;
ローカル変数と反対の性質を持つものとして、グローバル変数があります。これは、スコープ内外のどこでも定義でき、定義されたスコープ外でもその変数を使用できます。グローバル変数はスクリプトではなくインタプリタに直接登録されます。その変数をグローバル変数として宣言定義するには&amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt;キーワードを使用します。&lt;br /&gt;
 function Func()&lt;br /&gt;
  {&lt;br /&gt;
     var global a = 123;&lt;br /&gt;
  }&lt;br /&gt;
 Func();&lt;br /&gt;
 print(a);//出力:123&lt;br /&gt;
上記の例ではFuncを呼び出すことで、グローバル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が定義されているため、Funcの呼び出し後には、そのインタプリタで実行されるすべてのコードでグローバル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が使用できます。&lt;br /&gt;
=定数=&lt;br /&gt;
定数は、変数とは異なり、一度宣言すると再度代入したり値を変更することができません。これは、プログラム上で変更されたくない値(トークンなど)を定義する際に役立ちます。定数にもスコープが存在し、ローカル定数とグローバル定数があります。定数を定義するには&amp;lt;code&amp;gt;var&amp;lt;/code&amp;gt;キーワードの代わりに&amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt;キーワードを使用します。&lt;br /&gt;
 const KEY = “ABCD”;&lt;br /&gt;
 print(KEY);//出力例:ABCD&lt;br /&gt;
 KEY = “EFGH”;//例外発生&lt;br /&gt;
&lt;br /&gt;
=型=&lt;br /&gt;
AliceScriptのすべての変数および定数は、値に評価されるすべての[[式]]と同じように、型を持ちます。インタプリタはコード内で実行されるすべての演算が型安全になるようにします。例えば&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;型の変数には、その値を加算したり減算したりする算術演算が許可されます。しかし、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型にはその種類の演算は許可されません。次に、特定の型の規定値を使用して変数を初期化する例を示します。&lt;br /&gt;
&lt;br /&gt;
 var v = type.Activate();&lt;br /&gt;
&lt;br /&gt;
型には次の種類があります。&lt;br /&gt;
==variable型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/variable/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型は、すべての変数の値を表します。&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型は等値演算子をサポートします。この型から文字列型にのみ暗黙的な変換をサポートします。&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型のメソッドは次の通りです。&lt;br /&gt;
*[[variable型のメソッド#Dispose|variable.Dispose]]&lt;br /&gt;
*[[variable型のメソッド#Equals|variable.Equals]]&lt;br /&gt;
*[[variable型のメソッド#Clone|variable.Clone]]&lt;br /&gt;
*[[variable型のメソッド#DeepClone|variable.DeepClone]]&lt;br /&gt;
*[[variable型のメソッド#ToString|variable.ToString]]&lt;br /&gt;
*[[variable型のメソッド#Properties|variable.Properties]]&lt;br /&gt;
*[[variable型のメソッド#Type|variable.Type]]&lt;br /&gt;
*[[variable型のメソッド#Convert|variable.Convert]]&lt;br /&gt;
&lt;br /&gt;
==number型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/number/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
数値型は実数を表します。数値型は算術、比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの数値型の表現できるおおよその範囲は、±5.0 × 10−324 - ±1.7 × 10308(-15~17桁)で、サイズは8バイトです。&lt;br /&gt;
&lt;br /&gt;
数値型の規定値はゼロ&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;です。また、数値型で非数、正方向の無限、負方向の無限を表す定数がそれぞれ、&amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;PositiveInfinity&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;NegativeInfinity&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&lt;br /&gt;
数値型への暗黙的な変換は存在しません。型変換演算子を使用するか&amp;lt;code&amp;gt;Convert&amp;lt;/code&amp;gt;メソッドを使って、文字列型、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型、&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型からの明示的な変換がサポートされています。また、数値型専用のメソッドは存在しません。この型の型指定修飾子は&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの数値型では小数点以下の計算が予想通りにいかない場合があります。[[数値型の計算誤差]]の記事を参照してください。&lt;br /&gt;
&lt;br /&gt;
==bool型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/bool/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型は、ブール値の論理数を表します。&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型は論理、比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型の有効な値は&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;か&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;のいずれかです。&lt;br /&gt;
それぞれの値を表す定数がそれぞれ、&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型への暗黙的な変換は存在しません。特に、WSOFTScriptとは違い数値型の代わりに値を使用することはできません。また、文字列型、数値型、&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型からの明示的変換がサポートされます。&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型専用のメソッドは存在しません。この型の型指定修飾子は&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
==bytes型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/bytes/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型は、バイナリデータ配列を表します。&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型は比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型の規定値は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。この型の型指定修飾子は&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型への暗黙的な変換は存在しません。また、文字列型、数値型、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型からの明示的変換がサポートされます。&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型専用のメソッドは存在しません。&lt;br /&gt;
&lt;br /&gt;
==none型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/none/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;型の有効な値は唯一&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとります。また、&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;型は比較演算子のみをサポートします。&lt;br /&gt;
&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;の値を表す定数が&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;型への暗黙的な変換および明示的な変換はサポートされていません。&lt;br /&gt;
&lt;br /&gt;
==string型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/string/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
文字列型は、テキストを一連のUTF-16コード単位として表現します。文字列型は結合、比較、等値演算子をサポートしています。&lt;br /&gt;
文字列型の規定値は空の文字列&amp;lt;code&amp;gt;””&amp;lt;/code&amp;gt;です。また、この型の型指定修飾子は&amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
すべてのAliceScriptに組み込まれている型はすべて文字列型への暗黙的な変換をサポートしています。文字列型に限って、明示的な変換と明示的な変換は同じ動作になります。文字列型のメソッドは次のものがあります。&lt;br /&gt;
*[[string型のメソッド#Trim|string.Trim]]&lt;br /&gt;
*[[string型のメソッド#TrimStart|string.TrimStart]]&lt;br /&gt;
*[[string型のメソッド#TrimEnd|string.TrimEnd]]&lt;br /&gt;
*[[string型のメソッド#StratsWith|stirng.StartsWith]]&lt;br /&gt;
*[[string型のメソッド#EndsWith|string.EndsWith]] &lt;br /&gt;
*[[string型のメソッド#PadLeft|string.PadLeft]] &lt;br /&gt;
*[[string型のメソッド#PadRight|string.PadRight]] &lt;br /&gt;
*[[string型のメソッド#Normalize|string.Normalize]] &lt;br /&gt;
*[[string型のメソッド#CompareTo|string.CompareTo]] &lt;br /&gt;
*[[string型のメソッド#IsNormalized|string.IsNormalized]] &lt;br /&gt;
*[[string型のメソッド#IndexOf|string.IndexOf]]&lt;br /&gt;
*[[string型のメソッド#LastIndexOf|string.LastIndexOf]]&lt;br /&gt;
*[[string型のメソッド#Contains|string.Contains]]&lt;br /&gt;
*[[string型のメソッド#Replace|string.Replace]] &lt;br /&gt;
*[[string型のメソッド#Split|string.Split]] &lt;br /&gt;
*[[string型のメソッド#ToLower|string.ToLower]] &lt;br /&gt;
*[[string型のメソッド#ToUpper|string.ToUpper]] &lt;br /&gt;
*[[string型のメソッド#EmptyOrWhiteSpaces|string.EmptyOrWhiteSpaces]]&lt;br /&gt;
*[[string型のメソッド#Format|string.Format]]&lt;br /&gt;
*[[string型のメソッド#Length|string.Length]]&lt;br /&gt;
*[[string型のメソッド#Count|string.Count]]&lt;br /&gt;
&lt;br /&gt;
==array型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/array/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
配列型は、インデックスを使用してアクセスできる変数のリストを表します。配列型は、結合、比較、等値演算子をサポートしています。&lt;br /&gt;
配列型の規定値は空の配列&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。この型の型指定修飾子は&amp;lt;code&amp;gt;array&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
配列型は必ずしも要素を含む必要も、同一の型である必要もありません。配列型への暗黙的な変換はサポートされていません。&lt;br /&gt;
明示的な変換を行うとき、その値を唯一の要素とする配列型に変換されます。配列型のメソッドには次のものがあります。&lt;br /&gt;
*[[配列型のメソッド#Add|array.Add]]&lt;br /&gt;
*[[配列型のメソッド#AddRange|array.AddRange]]&lt;br /&gt;
*[[配列型のメソッド#Remove|array.Remove]]&lt;br /&gt;
*[[配列型のメソッド#RemoveAt|array.RemoveAt]]&lt;br /&gt;
*[[配列型のメソッド#Insert|array.Insert]]&lt;br /&gt;
*[[配列型のメソッド#RemoveRange|array.RemoveRange]]&lt;br /&gt;
*[[配列型のメソッド#IndexOf|array.IndexOf]]&lt;br /&gt;
*[[配列型のメソッド#Contains|array.Contains]]&lt;br /&gt;
*[[配列型のメソッド#Sort|array.Sort]]&lt;br /&gt;
*[[配列型のメソッド#Reverse|array.Reverse]]&lt;br /&gt;
*[[配列型のメソッド#First|array.First]]&lt;br /&gt;
*[[配列型のメソッド#Last|array.Last]]&lt;br /&gt;
*[[配列型のメソッド#Flatten|array.Flatten]]&lt;br /&gt;
*[[配列型のメソッド#Marge|array.Merge]]&lt;br /&gt;
*[[配列型のメソッド#Foreach|array.Foreach]]&lt;br /&gt;
*[[配列型のメソッド#Length|array.Length]]&lt;br /&gt;
*[[配列型のメソッド#Count|array.Count]]&lt;br /&gt;
&lt;br /&gt;
==delegate型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/delegate/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
デリゲート型は、匿名関数のように一連のステートメントのまとまりを表します。デリゲート型は結合、比較、等値演算子をサポートしています。&lt;br /&gt;
デリゲート型の規定値は空のステートメント&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。デリゲート型への暗黙的な変換と明示的な変換の両方はサポートされていません。この型の型指定修飾子は&amp;lt;code&amp;gt;delegate&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
デリゲート型は、配列のように複数の要素を持つことができます。しかし、デリゲート型にはデリゲート型以外の要素を含めることはできません。&lt;br /&gt;
デリゲートについての詳しい説明は[[デリゲート]]の記事を参照してください。デリゲート型のメソッドには次のものがあります。&lt;br /&gt;
*[[デリゲート#Invoke|delegate.Invoke]]&lt;br /&gt;
*[[デリゲート#BeginInvoke|delegate.BeginInvoke]]&lt;br /&gt;
*[[デリゲート#Length/Count|delegate.Length]]&lt;br /&gt;
*[[デリゲート#Length/Count|delegate.Count]]&lt;br /&gt;
&lt;br /&gt;
==type型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/alice/interpreter/type/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型は、変数の型を表します。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型は比較、等値演算子をサポートしています。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型の規定値は、&amp;lt;code&amp;gt;type.None&amp;lt;/code&amp;gt;です。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型への暗黙的な変換はサポートされていませんが、文字列型からの明示的な変換はサポートされます。この型の型指定修飾子は&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;です。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型のメソッドには次のものがあります。&lt;br /&gt;
*[[Type型のメソッド#Activate|type.Activate]]&lt;br /&gt;
[[Category:基本]]&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E5%A4%89%E6%95%B0&amp;diff=1272</id>
		<title>変数</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E5%A4%89%E6%95%B0&amp;diff=1272"/>
		<updated>2023-06-29T01:39:47Z</updated>

		<summary type="html">&lt;p&gt;Master: /* none型 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/general/variable/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
変数は、AliceScriptにおける主要な概念の一つです。変数は、任意の場所で宣言定義でき、その値を取り出したり代入することができます。&lt;br /&gt;
この記事では、多くの変数に共通する事項を説明した後、それぞれの型の特徴について説明します。&lt;br /&gt;
変数は、すべて基となる&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;から派生しています。これは、すべての変数に共通した操作セットを提供します。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの変数は、文字またはアンダースコアから始まり、任意の数の文字、数字、記号が続きます。[[キーワード|予約語]]を使用することはできません。次の例では、&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;という変数に&amp;lt;code&amp;gt;123&amp;lt;/code&amp;gt;を代入し定義します。その後で、その変数の値を[[Print]]関数を使って出力します。&lt;br /&gt;
 var a = 123;&lt;br /&gt;
 print(a);&lt;br /&gt;
通常、変数に代入されるのは常にその値です。つまり、ある変数に式の値を代入するとその値への参照が代入されます。&lt;br /&gt;
通常、変数を定義する際は次の形で宣言します。&lt;br /&gt;
 var (修飾子) 名前 = 値;&lt;br /&gt;
&lt;br /&gt;
=ローカル変数とスコープ=&lt;br /&gt;
変数はその有効な範囲内で、一意な名前である必要があります。この範囲をその変数のスコープと呼びます。スコープの範囲内では、同じ名前の変数を定義することはできませんし、反対にスコープの外に出ると、その範囲内で定義した変数は使用できません。&lt;br /&gt;
AliceScriptでいうところのスコープの範囲は、原則としてそのコードのブロック内です。コードのブロックは、およそそのコードの波括弧の中を指します。次の例を参照してください。&lt;br /&gt;
 function Func()&lt;br /&gt;
  {&lt;br /&gt;
      var a = 123;&lt;br /&gt;
  }&lt;br /&gt;
 Func();&lt;br /&gt;
 print(a);//例外発生&lt;br /&gt;
上記の例ではFuncを呼び出すことで、ローカル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が定義されていますがそのスコープの範囲外での呼び出しのため、関数外で変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;を使用することはできません。また、インクルードしたファイルに対してもスコープが適用されます。このため、異なるスクリプトファイル間でローカル変数を共有することはできません。&lt;br /&gt;
=グローバル変数=&lt;br /&gt;
ローカル変数と反対の性質を持つものとして、グローバル変数があります。これは、スコープ内外のどこでも定義でき、定義されたスコープ外でもその変数を使用できます。グローバル変数はスクリプトではなくインタプリタに直接登録されます。その変数をグローバル変数として宣言定義するには&amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt;キーワードを使用します。&lt;br /&gt;
 function Func()&lt;br /&gt;
  {&lt;br /&gt;
     var global a = 123;&lt;br /&gt;
  }&lt;br /&gt;
 Func();&lt;br /&gt;
 print(a);//出力:123&lt;br /&gt;
上記の例ではFuncを呼び出すことで、グローバル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が定義されているため、Funcの呼び出し後には、そのインタプリタで実行されるすべてのコードでグローバル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が使用できます。&lt;br /&gt;
=定数=&lt;br /&gt;
定数は、変数とは異なり、一度宣言すると再度代入したり値を変更することができません。これは、プログラム上で変更されたくない値(トークンなど)を定義する際に役立ちます。定数にもスコープが存在し、ローカル定数とグローバル定数があります。定数を定義するには&amp;lt;code&amp;gt;var&amp;lt;/code&amp;gt;キーワードの代わりに&amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt;キーワードを使用します。&lt;br /&gt;
 const KEY = “ABCD”;&lt;br /&gt;
 print(KEY);//出力例:ABCD&lt;br /&gt;
 KEY = “EFGH”;//例外発生&lt;br /&gt;
&lt;br /&gt;
=型=&lt;br /&gt;
AliceScriptのすべての変数および定数は、値に評価されるすべての[[式]]と同じように、型を持ちます。インタプリタはコード内で実行されるすべての演算が型安全になるようにします。例えば&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;型の変数には、その値を加算したり減算したりする算術演算が許可されます。しかし、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型にはその種類の演算は許可されません。次に、特定の型の規定値を使用して変数を初期化する例を示します。&lt;br /&gt;
&lt;br /&gt;
 var v = type.Activate();&lt;br /&gt;
&lt;br /&gt;
型には次の種類があります。&lt;br /&gt;
==variable型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/variable/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型は、すべての変数の値を表します。&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型は等値演算子をサポートします。この型から文字列型にのみ暗黙的な変換をサポートします。&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型のメソッドは次の通りです。&lt;br /&gt;
*[[variable型のメソッド#Dispose|variable.Dispose]]&lt;br /&gt;
*[[variable型のメソッド#Equals|variable.Equals]]&lt;br /&gt;
*[[variable型のメソッド#Clone|variable.Clone]]&lt;br /&gt;
*[[variable型のメソッド#DeepClone|variable.DeepClone]]&lt;br /&gt;
*[[variable型のメソッド#ToString|variable.ToString]]&lt;br /&gt;
*[[variable型のメソッド#Properties|variable.Properties]]&lt;br /&gt;
*[[variable型のメソッド#Type|variable.Type]]&lt;br /&gt;
*[[variable型のメソッド#Convert|variable.Convert]]&lt;br /&gt;
&lt;br /&gt;
==number型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/number/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
数値型は実数を表します。数値型は算術、比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの数値型の表現できるおおよその範囲は、±5.0 × 10−324 - ±1.7 × 10308(-15~17桁)で、サイズは8バイトです。&lt;br /&gt;
&lt;br /&gt;
数値型の規定値はゼロ&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;です。また、数値型で非数、正方向の無限、負方向の無限を表す定数がそれぞれ、&amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;PositiveInfinity&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;NegativeInfinity&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&lt;br /&gt;
数値型への暗黙的な変換は存在しません。型変換演算子を使用するか&amp;lt;code&amp;gt;Convert&amp;lt;/code&amp;gt;メソッドを使って、文字列型、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型、&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型からの明示的な変換がサポートされています。また、数値型専用のメソッドは存在しません。この型の型指定修飾子は&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの数値型では小数点以下の計算が予想通りにいかない場合があります。[[数値型の計算誤差]]の記事を参照してください。&lt;br /&gt;
&lt;br /&gt;
==bool型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/bool/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型は、ブール値の論理数を表します。&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型は論理、比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型の有効な値は&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;か&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;のいずれかです。&lt;br /&gt;
それぞれの値を表す定数がそれぞれ、&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型への暗黙的な変換は存在しません。特に、WSOFTScriptとは違い数値型の代わりに値を使用することはできません。また、文字列型、数値型、&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型からの明示的変換がサポートされます。&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型専用のメソッドは存在しません。この型の型指定修飾子は&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
==bytes型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/bytes/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型は、バイナリデータ配列を表します。&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型は比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型の規定値は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。この型の型指定修飾子は&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型への暗黙的な変換は存在しません。また、文字列型、数値型、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型からの明示的変換がサポートされます。&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型専用のメソッドは存在しません。&lt;br /&gt;
&lt;br /&gt;
==none型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/none/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;型の有効な値は唯一&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとります。また、&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;型は比較演算子のみをサポートします。&lt;br /&gt;
&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;の値を表す定数が&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;型への暗黙的な変換および明示的な変換はサポートされていません。&lt;br /&gt;
&lt;br /&gt;
==string型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/string/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
文字列型は、テキストを一連のUTF-16コード単位として表現します。文字列型は結合、比較、等値演算子をサポートしています。&lt;br /&gt;
文字列型の規定値は空の文字列&amp;lt;code&amp;gt;””&amp;lt;/code&amp;gt;です。また、この型の型指定修飾子は&amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
すべてのAliceScriptに組み込まれている型はすべて文字列型への暗黙的な変換をサポートしています。文字列型に限って、明示的な変換と明示的な変換は同じ動作になります。文字列型のメソッドは次のものがあります。&lt;br /&gt;
*[[string型のメソッド#Trim|string.Trim]]&lt;br /&gt;
*[[string型のメソッド#TrimStart|string.TrimStart]]&lt;br /&gt;
*[[string型のメソッド#TrimEnd|string.TrimEnd]]&lt;br /&gt;
*[[string型のメソッド#StratsWith|stirng.StartsWith]]&lt;br /&gt;
*[[string型のメソッド#EndsWith|string.EndsWith]] &lt;br /&gt;
*[[string型のメソッド#PadLeft|string.PadLeft]] &lt;br /&gt;
*[[string型のメソッド#PadRight|string.PadRight]] &lt;br /&gt;
*[[string型のメソッド#Normalize|string.Normalize]] &lt;br /&gt;
*[[string型のメソッド#CompareTo|string.CompareTo]] &lt;br /&gt;
*[[string型のメソッド#IsNormalized|string.IsNormalized]] &lt;br /&gt;
*[[string型のメソッド#IndexOf|string.IndexOf]]&lt;br /&gt;
*[[string型のメソッド#LastIndexOf|string.LastIndexOf]]&lt;br /&gt;
*[[string型のメソッド#Contains|string.Contains]]&lt;br /&gt;
*[[string型のメソッド#Replace|string.Replace]] &lt;br /&gt;
*[[string型のメソッド#Split|string.Split]] &lt;br /&gt;
*[[string型のメソッド#ToLower|string.ToLower]] &lt;br /&gt;
*[[string型のメソッド#ToUpper|string.ToUpper]] &lt;br /&gt;
*[[string型のメソッド#EmptyOrWhiteSpaces|string.EmptyOrWhiteSpaces]]&lt;br /&gt;
*[[string型のメソッド#Format|string.Format]]&lt;br /&gt;
*[[string型のメソッド#Length|string.Length]]&lt;br /&gt;
*[[string型のメソッド#Count|string.Count]]&lt;br /&gt;
&lt;br /&gt;
==array型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/array/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
配列型は、インデックスを使用してアクセスできる変数のリストを表します。配列型は、結合、比較、等値演算子をサポートしています。&lt;br /&gt;
配列型の規定値は空の配列&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。この型の型指定修飾子は&amp;lt;code&amp;gt;array&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
配列型は必ずしも要素を含む必要も、同一の型である必要もありません。配列型への暗黙的な変換はサポートされていません。&lt;br /&gt;
明示的な変換を行うとき、その値を唯一の要素とする配列型に変換されます。配列型のメソッドには次のものがあります。&lt;br /&gt;
*[[配列型のメソッド#Add|array.Add]]&lt;br /&gt;
*[[配列型のメソッド#AddRange|array.AddRange]]&lt;br /&gt;
*[[配列型のメソッド#Remove|array.Remove]]&lt;br /&gt;
*[[配列型のメソッド#RemoveAt|array.RemoveAt]]&lt;br /&gt;
*[[配列型のメソッド#Insert|array.Insert]]&lt;br /&gt;
*[[配列型のメソッド#RemoveRange|array.RemoveRange]]&lt;br /&gt;
*[[配列型のメソッド#IndexOf|array.IndexOf]]&lt;br /&gt;
*[[配列型のメソッド#Contains|array.Contains]]&lt;br /&gt;
*[[配列型のメソッド#Sort|array.Sort]]&lt;br /&gt;
*[[配列型のメソッド#Reverse|array.Reverse]]&lt;br /&gt;
*[[配列型のメソッド#First|array.First]]&lt;br /&gt;
*[[配列型のメソッド#Last|array.Last]]&lt;br /&gt;
*[[配列型のメソッド#Flatten|array.Flatten]]&lt;br /&gt;
*[[配列型のメソッド#Marge|array.Merge]]&lt;br /&gt;
*[[配列型のメソッド#Foreach|array.Foreach]]&lt;br /&gt;
*[[配列型のメソッド#Length|array.Length]]&lt;br /&gt;
*[[配列型のメソッド#Count|array.Count]]&lt;br /&gt;
&lt;br /&gt;
==delegate型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/delegate/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
デリゲート型は、匿名関数のように一連のステートメントのまとまりを表します。デリゲート型は結合、比較、等値演算子をサポートしています。&lt;br /&gt;
デリゲート型の規定値は空のステートメント&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。デリゲート型への暗黙的な変換と明示的な変換の両方はサポートされていません。この型の型指定修飾子は&amp;lt;code&amp;gt;delegate&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
デリゲート型は、配列のように複数の要素を持つことができます。しかし、デリゲート型にはデリゲート型以外の要素を含めることはできません。&lt;br /&gt;
デリゲートについての詳しい説明は[[デリゲート]]の記事を参照してください。デリゲート型のメソッドには次のものがあります。&lt;br /&gt;
*[[デリゲート#Invoke|delegate.Invoke]]&lt;br /&gt;
*[[デリゲート#BeginInvoke|delegate.BeginInvoke]]&lt;br /&gt;
*[[デリゲート#Length/Count|delegate.Length]]&lt;br /&gt;
*[[デリゲート#Length/Count|delegate.Count]]&lt;br /&gt;
&lt;br /&gt;
==type型==&lt;br /&gt;
&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型は、変数の型を表します。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型は比較、等値演算子をサポートしています。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型の規定値は、&amp;lt;code&amp;gt;type.None&amp;lt;/code&amp;gt;です。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型への暗黙的な変換はサポートされていませんが、文字列型からの明示的な変換はサポートされます。この型の型指定修飾子は&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;です。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型のメソッドには次のものがあります。&lt;br /&gt;
*[[Type型のメソッド#Activate|type.Activate]]&lt;br /&gt;
[[Category:基本]]&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E5%A4%89%E6%95%B0&amp;diff=1271</id>
		<title>変数</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E5%A4%89%E6%95%B0&amp;diff=1271"/>
		<updated>2023-06-29T01:39:12Z</updated>

		<summary type="html">&lt;p&gt;Master: /* delegate型 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/general/variable/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
変数は、AliceScriptにおける主要な概念の一つです。変数は、任意の場所で宣言定義でき、その値を取り出したり代入することができます。&lt;br /&gt;
この記事では、多くの変数に共通する事項を説明した後、それぞれの型の特徴について説明します。&lt;br /&gt;
変数は、すべて基となる&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;から派生しています。これは、すべての変数に共通した操作セットを提供します。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの変数は、文字またはアンダースコアから始まり、任意の数の文字、数字、記号が続きます。[[キーワード|予約語]]を使用することはできません。次の例では、&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;という変数に&amp;lt;code&amp;gt;123&amp;lt;/code&amp;gt;を代入し定義します。その後で、その変数の値を[[Print]]関数を使って出力します。&lt;br /&gt;
 var a = 123;&lt;br /&gt;
 print(a);&lt;br /&gt;
通常、変数に代入されるのは常にその値です。つまり、ある変数に式の値を代入するとその値への参照が代入されます。&lt;br /&gt;
通常、変数を定義する際は次の形で宣言します。&lt;br /&gt;
 var (修飾子) 名前 = 値;&lt;br /&gt;
&lt;br /&gt;
=ローカル変数とスコープ=&lt;br /&gt;
変数はその有効な範囲内で、一意な名前である必要があります。この範囲をその変数のスコープと呼びます。スコープの範囲内では、同じ名前の変数を定義することはできませんし、反対にスコープの外に出ると、その範囲内で定義した変数は使用できません。&lt;br /&gt;
AliceScriptでいうところのスコープの範囲は、原則としてそのコードのブロック内です。コードのブロックは、およそそのコードの波括弧の中を指します。次の例を参照してください。&lt;br /&gt;
 function Func()&lt;br /&gt;
  {&lt;br /&gt;
      var a = 123;&lt;br /&gt;
  }&lt;br /&gt;
 Func();&lt;br /&gt;
 print(a);//例外発生&lt;br /&gt;
上記の例ではFuncを呼び出すことで、ローカル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が定義されていますがそのスコープの範囲外での呼び出しのため、関数外で変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;を使用することはできません。また、インクルードしたファイルに対してもスコープが適用されます。このため、異なるスクリプトファイル間でローカル変数を共有することはできません。&lt;br /&gt;
=グローバル変数=&lt;br /&gt;
ローカル変数と反対の性質を持つものとして、グローバル変数があります。これは、スコープ内外のどこでも定義でき、定義されたスコープ外でもその変数を使用できます。グローバル変数はスクリプトではなくインタプリタに直接登録されます。その変数をグローバル変数として宣言定義するには&amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt;キーワードを使用します。&lt;br /&gt;
 function Func()&lt;br /&gt;
  {&lt;br /&gt;
     var global a = 123;&lt;br /&gt;
  }&lt;br /&gt;
 Func();&lt;br /&gt;
 print(a);//出力:123&lt;br /&gt;
上記の例ではFuncを呼び出すことで、グローバル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が定義されているため、Funcの呼び出し後には、そのインタプリタで実行されるすべてのコードでグローバル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が使用できます。&lt;br /&gt;
=定数=&lt;br /&gt;
定数は、変数とは異なり、一度宣言すると再度代入したり値を変更することができません。これは、プログラム上で変更されたくない値(トークンなど)を定義する際に役立ちます。定数にもスコープが存在し、ローカル定数とグローバル定数があります。定数を定義するには&amp;lt;code&amp;gt;var&amp;lt;/code&amp;gt;キーワードの代わりに&amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt;キーワードを使用します。&lt;br /&gt;
 const KEY = “ABCD”;&lt;br /&gt;
 print(KEY);//出力例:ABCD&lt;br /&gt;
 KEY = “EFGH”;//例外発生&lt;br /&gt;
&lt;br /&gt;
=型=&lt;br /&gt;
AliceScriptのすべての変数および定数は、値に評価されるすべての[[式]]と同じように、型を持ちます。インタプリタはコード内で実行されるすべての演算が型安全になるようにします。例えば&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;型の変数には、その値を加算したり減算したりする算術演算が許可されます。しかし、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型にはその種類の演算は許可されません。次に、特定の型の規定値を使用して変数を初期化する例を示します。&lt;br /&gt;
&lt;br /&gt;
 var v = type.Activate();&lt;br /&gt;
&lt;br /&gt;
型には次の種類があります。&lt;br /&gt;
==variable型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/variable/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型は、すべての変数の値を表します。&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型は等値演算子をサポートします。この型から文字列型にのみ暗黙的な変換をサポートします。&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型のメソッドは次の通りです。&lt;br /&gt;
*[[variable型のメソッド#Dispose|variable.Dispose]]&lt;br /&gt;
*[[variable型のメソッド#Equals|variable.Equals]]&lt;br /&gt;
*[[variable型のメソッド#Clone|variable.Clone]]&lt;br /&gt;
*[[variable型のメソッド#DeepClone|variable.DeepClone]]&lt;br /&gt;
*[[variable型のメソッド#ToString|variable.ToString]]&lt;br /&gt;
*[[variable型のメソッド#Properties|variable.Properties]]&lt;br /&gt;
*[[variable型のメソッド#Type|variable.Type]]&lt;br /&gt;
*[[variable型のメソッド#Convert|variable.Convert]]&lt;br /&gt;
&lt;br /&gt;
==number型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/number/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
数値型は実数を表します。数値型は算術、比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの数値型の表現できるおおよその範囲は、±5.0 × 10−324 - ±1.7 × 10308(-15~17桁)で、サイズは8バイトです。&lt;br /&gt;
&lt;br /&gt;
数値型の規定値はゼロ&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;です。また、数値型で非数、正方向の無限、負方向の無限を表す定数がそれぞれ、&amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;PositiveInfinity&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;NegativeInfinity&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&lt;br /&gt;
数値型への暗黙的な変換は存在しません。型変換演算子を使用するか&amp;lt;code&amp;gt;Convert&amp;lt;/code&amp;gt;メソッドを使って、文字列型、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型、&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型からの明示的な変換がサポートされています。また、数値型専用のメソッドは存在しません。この型の型指定修飾子は&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの数値型では小数点以下の計算が予想通りにいかない場合があります。[[数値型の計算誤差]]の記事を参照してください。&lt;br /&gt;
&lt;br /&gt;
==bool型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/bool/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型は、ブール値の論理数を表します。&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型は論理、比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型の有効な値は&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;か&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;のいずれかです。&lt;br /&gt;
それぞれの値を表す定数がそれぞれ、&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型への暗黙的な変換は存在しません。特に、WSOFTScriptとは違い数値型の代わりに値を使用することはできません。また、文字列型、数値型、&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型からの明示的変換がサポートされます。&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型専用のメソッドは存在しません。この型の型指定修飾子は&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
==bytes型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/bytes/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型は、バイナリデータ配列を表します。&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型は比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型の規定値は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。この型の型指定修飾子は&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型への暗黙的な変換は存在しません。また、文字列型、数値型、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型からの明示的変換がサポートされます。&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型専用のメソッドは存在しません。&lt;br /&gt;
&lt;br /&gt;
==none型==&lt;br /&gt;
&amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;型の有効な値は唯一&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとります。また、&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;型は比較演算子のみをサポートします。&lt;br /&gt;
&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;の値を表す定数が&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;型への暗黙的な変換および明示的な変換はサポートされていません。&lt;br /&gt;
&lt;br /&gt;
==string型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/string/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
文字列型は、テキストを一連のUTF-16コード単位として表現します。文字列型は結合、比較、等値演算子をサポートしています。&lt;br /&gt;
文字列型の規定値は空の文字列&amp;lt;code&amp;gt;””&amp;lt;/code&amp;gt;です。また、この型の型指定修飾子は&amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
すべてのAliceScriptに組み込まれている型はすべて文字列型への暗黙的な変換をサポートしています。文字列型に限って、明示的な変換と明示的な変換は同じ動作になります。文字列型のメソッドは次のものがあります。&lt;br /&gt;
*[[string型のメソッド#Trim|string.Trim]]&lt;br /&gt;
*[[string型のメソッド#TrimStart|string.TrimStart]]&lt;br /&gt;
*[[string型のメソッド#TrimEnd|string.TrimEnd]]&lt;br /&gt;
*[[string型のメソッド#StratsWith|stirng.StartsWith]]&lt;br /&gt;
*[[string型のメソッド#EndsWith|string.EndsWith]] &lt;br /&gt;
*[[string型のメソッド#PadLeft|string.PadLeft]] &lt;br /&gt;
*[[string型のメソッド#PadRight|string.PadRight]] &lt;br /&gt;
*[[string型のメソッド#Normalize|string.Normalize]] &lt;br /&gt;
*[[string型のメソッド#CompareTo|string.CompareTo]] &lt;br /&gt;
*[[string型のメソッド#IsNormalized|string.IsNormalized]] &lt;br /&gt;
*[[string型のメソッド#IndexOf|string.IndexOf]]&lt;br /&gt;
*[[string型のメソッド#LastIndexOf|string.LastIndexOf]]&lt;br /&gt;
*[[string型のメソッド#Contains|string.Contains]]&lt;br /&gt;
*[[string型のメソッド#Replace|string.Replace]] &lt;br /&gt;
*[[string型のメソッド#Split|string.Split]] &lt;br /&gt;
*[[string型のメソッド#ToLower|string.ToLower]] &lt;br /&gt;
*[[string型のメソッド#ToUpper|string.ToUpper]] &lt;br /&gt;
*[[string型のメソッド#EmptyOrWhiteSpaces|string.EmptyOrWhiteSpaces]]&lt;br /&gt;
*[[string型のメソッド#Format|string.Format]]&lt;br /&gt;
*[[string型のメソッド#Length|string.Length]]&lt;br /&gt;
*[[string型のメソッド#Count|string.Count]]&lt;br /&gt;
&lt;br /&gt;
==array型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/array/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
配列型は、インデックスを使用してアクセスできる変数のリストを表します。配列型は、結合、比較、等値演算子をサポートしています。&lt;br /&gt;
配列型の規定値は空の配列&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。この型の型指定修飾子は&amp;lt;code&amp;gt;array&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
配列型は必ずしも要素を含む必要も、同一の型である必要もありません。配列型への暗黙的な変換はサポートされていません。&lt;br /&gt;
明示的な変換を行うとき、その値を唯一の要素とする配列型に変換されます。配列型のメソッドには次のものがあります。&lt;br /&gt;
*[[配列型のメソッド#Add|array.Add]]&lt;br /&gt;
*[[配列型のメソッド#AddRange|array.AddRange]]&lt;br /&gt;
*[[配列型のメソッド#Remove|array.Remove]]&lt;br /&gt;
*[[配列型のメソッド#RemoveAt|array.RemoveAt]]&lt;br /&gt;
*[[配列型のメソッド#Insert|array.Insert]]&lt;br /&gt;
*[[配列型のメソッド#RemoveRange|array.RemoveRange]]&lt;br /&gt;
*[[配列型のメソッド#IndexOf|array.IndexOf]]&lt;br /&gt;
*[[配列型のメソッド#Contains|array.Contains]]&lt;br /&gt;
*[[配列型のメソッド#Sort|array.Sort]]&lt;br /&gt;
*[[配列型のメソッド#Reverse|array.Reverse]]&lt;br /&gt;
*[[配列型のメソッド#First|array.First]]&lt;br /&gt;
*[[配列型のメソッド#Last|array.Last]]&lt;br /&gt;
*[[配列型のメソッド#Flatten|array.Flatten]]&lt;br /&gt;
*[[配列型のメソッド#Marge|array.Merge]]&lt;br /&gt;
*[[配列型のメソッド#Foreach|array.Foreach]]&lt;br /&gt;
*[[配列型のメソッド#Length|array.Length]]&lt;br /&gt;
*[[配列型のメソッド#Count|array.Count]]&lt;br /&gt;
&lt;br /&gt;
==delegate型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/delegate/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
デリゲート型は、匿名関数のように一連のステートメントのまとまりを表します。デリゲート型は結合、比較、等値演算子をサポートしています。&lt;br /&gt;
デリゲート型の規定値は空のステートメント&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。デリゲート型への暗黙的な変換と明示的な変換の両方はサポートされていません。この型の型指定修飾子は&amp;lt;code&amp;gt;delegate&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
デリゲート型は、配列のように複数の要素を持つことができます。しかし、デリゲート型にはデリゲート型以外の要素を含めることはできません。&lt;br /&gt;
デリゲートについての詳しい説明は[[デリゲート]]の記事を参照してください。デリゲート型のメソッドには次のものがあります。&lt;br /&gt;
*[[デリゲート#Invoke|delegate.Invoke]]&lt;br /&gt;
*[[デリゲート#BeginInvoke|delegate.BeginInvoke]]&lt;br /&gt;
*[[デリゲート#Length/Count|delegate.Length]]&lt;br /&gt;
*[[デリゲート#Length/Count|delegate.Count]]&lt;br /&gt;
&lt;br /&gt;
==type型==&lt;br /&gt;
&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型は、変数の型を表します。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型は比較、等値演算子をサポートしています。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型の規定値は、&amp;lt;code&amp;gt;type.None&amp;lt;/code&amp;gt;です。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型への暗黙的な変換はサポートされていませんが、文字列型からの明示的な変換はサポートされます。この型の型指定修飾子は&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;です。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型のメソッドには次のものがあります。&lt;br /&gt;
*[[Type型のメソッド#Activate|type.Activate]]&lt;br /&gt;
[[Category:基本]]&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E5%A4%89%E6%95%B0&amp;diff=1270</id>
		<title>変数</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E5%A4%89%E6%95%B0&amp;diff=1270"/>
		<updated>2023-06-29T01:38:47Z</updated>

		<summary type="html">&lt;p&gt;Master: /* array型 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/general/variable/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
変数は、AliceScriptにおける主要な概念の一つです。変数は、任意の場所で宣言定義でき、その値を取り出したり代入することができます。&lt;br /&gt;
この記事では、多くの変数に共通する事項を説明した後、それぞれの型の特徴について説明します。&lt;br /&gt;
変数は、すべて基となる&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;から派生しています。これは、すべての変数に共通した操作セットを提供します。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの変数は、文字またはアンダースコアから始まり、任意の数の文字、数字、記号が続きます。[[キーワード|予約語]]を使用することはできません。次の例では、&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;という変数に&amp;lt;code&amp;gt;123&amp;lt;/code&amp;gt;を代入し定義します。その後で、その変数の値を[[Print]]関数を使って出力します。&lt;br /&gt;
 var a = 123;&lt;br /&gt;
 print(a);&lt;br /&gt;
通常、変数に代入されるのは常にその値です。つまり、ある変数に式の値を代入するとその値への参照が代入されます。&lt;br /&gt;
通常、変数を定義する際は次の形で宣言します。&lt;br /&gt;
 var (修飾子) 名前 = 値;&lt;br /&gt;
&lt;br /&gt;
=ローカル変数とスコープ=&lt;br /&gt;
変数はその有効な範囲内で、一意な名前である必要があります。この範囲をその変数のスコープと呼びます。スコープの範囲内では、同じ名前の変数を定義することはできませんし、反対にスコープの外に出ると、その範囲内で定義した変数は使用できません。&lt;br /&gt;
AliceScriptでいうところのスコープの範囲は、原則としてそのコードのブロック内です。コードのブロックは、およそそのコードの波括弧の中を指します。次の例を参照してください。&lt;br /&gt;
 function Func()&lt;br /&gt;
  {&lt;br /&gt;
      var a = 123;&lt;br /&gt;
  }&lt;br /&gt;
 Func();&lt;br /&gt;
 print(a);//例外発生&lt;br /&gt;
上記の例ではFuncを呼び出すことで、ローカル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が定義されていますがそのスコープの範囲外での呼び出しのため、関数外で変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;を使用することはできません。また、インクルードしたファイルに対してもスコープが適用されます。このため、異なるスクリプトファイル間でローカル変数を共有することはできません。&lt;br /&gt;
=グローバル変数=&lt;br /&gt;
ローカル変数と反対の性質を持つものとして、グローバル変数があります。これは、スコープ内外のどこでも定義でき、定義されたスコープ外でもその変数を使用できます。グローバル変数はスクリプトではなくインタプリタに直接登録されます。その変数をグローバル変数として宣言定義するには&amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt;キーワードを使用します。&lt;br /&gt;
 function Func()&lt;br /&gt;
  {&lt;br /&gt;
     var global a = 123;&lt;br /&gt;
  }&lt;br /&gt;
 Func();&lt;br /&gt;
 print(a);//出力:123&lt;br /&gt;
上記の例ではFuncを呼び出すことで、グローバル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が定義されているため、Funcの呼び出し後には、そのインタプリタで実行されるすべてのコードでグローバル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が使用できます。&lt;br /&gt;
=定数=&lt;br /&gt;
定数は、変数とは異なり、一度宣言すると再度代入したり値を変更することができません。これは、プログラム上で変更されたくない値(トークンなど)を定義する際に役立ちます。定数にもスコープが存在し、ローカル定数とグローバル定数があります。定数を定義するには&amp;lt;code&amp;gt;var&amp;lt;/code&amp;gt;キーワードの代わりに&amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt;キーワードを使用します。&lt;br /&gt;
 const KEY = “ABCD”;&lt;br /&gt;
 print(KEY);//出力例:ABCD&lt;br /&gt;
 KEY = “EFGH”;//例外発生&lt;br /&gt;
&lt;br /&gt;
=型=&lt;br /&gt;
AliceScriptのすべての変数および定数は、値に評価されるすべての[[式]]と同じように、型を持ちます。インタプリタはコード内で実行されるすべての演算が型安全になるようにします。例えば&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;型の変数には、その値を加算したり減算したりする算術演算が許可されます。しかし、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型にはその種類の演算は許可されません。次に、特定の型の規定値を使用して変数を初期化する例を示します。&lt;br /&gt;
&lt;br /&gt;
 var v = type.Activate();&lt;br /&gt;
&lt;br /&gt;
型には次の種類があります。&lt;br /&gt;
==variable型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/variable/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型は、すべての変数の値を表します。&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型は等値演算子をサポートします。この型から文字列型にのみ暗黙的な変換をサポートします。&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型のメソッドは次の通りです。&lt;br /&gt;
*[[variable型のメソッド#Dispose|variable.Dispose]]&lt;br /&gt;
*[[variable型のメソッド#Equals|variable.Equals]]&lt;br /&gt;
*[[variable型のメソッド#Clone|variable.Clone]]&lt;br /&gt;
*[[variable型のメソッド#DeepClone|variable.DeepClone]]&lt;br /&gt;
*[[variable型のメソッド#ToString|variable.ToString]]&lt;br /&gt;
*[[variable型のメソッド#Properties|variable.Properties]]&lt;br /&gt;
*[[variable型のメソッド#Type|variable.Type]]&lt;br /&gt;
*[[variable型のメソッド#Convert|variable.Convert]]&lt;br /&gt;
&lt;br /&gt;
==number型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/number/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
数値型は実数を表します。数値型は算術、比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの数値型の表現できるおおよその範囲は、±5.0 × 10−324 - ±1.7 × 10308(-15~17桁)で、サイズは8バイトです。&lt;br /&gt;
&lt;br /&gt;
数値型の規定値はゼロ&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;です。また、数値型で非数、正方向の無限、負方向の無限を表す定数がそれぞれ、&amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;PositiveInfinity&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;NegativeInfinity&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&lt;br /&gt;
数値型への暗黙的な変換は存在しません。型変換演算子を使用するか&amp;lt;code&amp;gt;Convert&amp;lt;/code&amp;gt;メソッドを使って、文字列型、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型、&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型からの明示的な変換がサポートされています。また、数値型専用のメソッドは存在しません。この型の型指定修飾子は&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの数値型では小数点以下の計算が予想通りにいかない場合があります。[[数値型の計算誤差]]の記事を参照してください。&lt;br /&gt;
&lt;br /&gt;
==bool型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/bool/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型は、ブール値の論理数を表します。&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型は論理、比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型の有効な値は&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;か&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;のいずれかです。&lt;br /&gt;
それぞれの値を表す定数がそれぞれ、&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型への暗黙的な変換は存在しません。特に、WSOFTScriptとは違い数値型の代わりに値を使用することはできません。また、文字列型、数値型、&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型からの明示的変換がサポートされます。&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型専用のメソッドは存在しません。この型の型指定修飾子は&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
==bytes型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/bytes/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型は、バイナリデータ配列を表します。&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型は比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型の規定値は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。この型の型指定修飾子は&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型への暗黙的な変換は存在しません。また、文字列型、数値型、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型からの明示的変換がサポートされます。&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型専用のメソッドは存在しません。&lt;br /&gt;
&lt;br /&gt;
==none型==&lt;br /&gt;
&amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;型の有効な値は唯一&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとります。また、&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;型は比較演算子のみをサポートします。&lt;br /&gt;
&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;の値を表す定数が&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;型への暗黙的な変換および明示的な変換はサポートされていません。&lt;br /&gt;
&lt;br /&gt;
==string型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/string/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
文字列型は、テキストを一連のUTF-16コード単位として表現します。文字列型は結合、比較、等値演算子をサポートしています。&lt;br /&gt;
文字列型の規定値は空の文字列&amp;lt;code&amp;gt;””&amp;lt;/code&amp;gt;です。また、この型の型指定修飾子は&amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
すべてのAliceScriptに組み込まれている型はすべて文字列型への暗黙的な変換をサポートしています。文字列型に限って、明示的な変換と明示的な変換は同じ動作になります。文字列型のメソッドは次のものがあります。&lt;br /&gt;
*[[string型のメソッド#Trim|string.Trim]]&lt;br /&gt;
*[[string型のメソッド#TrimStart|string.TrimStart]]&lt;br /&gt;
*[[string型のメソッド#TrimEnd|string.TrimEnd]]&lt;br /&gt;
*[[string型のメソッド#StratsWith|stirng.StartsWith]]&lt;br /&gt;
*[[string型のメソッド#EndsWith|string.EndsWith]] &lt;br /&gt;
*[[string型のメソッド#PadLeft|string.PadLeft]] &lt;br /&gt;
*[[string型のメソッド#PadRight|string.PadRight]] &lt;br /&gt;
*[[string型のメソッド#Normalize|string.Normalize]] &lt;br /&gt;
*[[string型のメソッド#CompareTo|string.CompareTo]] &lt;br /&gt;
*[[string型のメソッド#IsNormalized|string.IsNormalized]] &lt;br /&gt;
*[[string型のメソッド#IndexOf|string.IndexOf]]&lt;br /&gt;
*[[string型のメソッド#LastIndexOf|string.LastIndexOf]]&lt;br /&gt;
*[[string型のメソッド#Contains|string.Contains]]&lt;br /&gt;
*[[string型のメソッド#Replace|string.Replace]] &lt;br /&gt;
*[[string型のメソッド#Split|string.Split]] &lt;br /&gt;
*[[string型のメソッド#ToLower|string.ToLower]] &lt;br /&gt;
*[[string型のメソッド#ToUpper|string.ToUpper]] &lt;br /&gt;
*[[string型のメソッド#EmptyOrWhiteSpaces|string.EmptyOrWhiteSpaces]]&lt;br /&gt;
*[[string型のメソッド#Format|string.Format]]&lt;br /&gt;
*[[string型のメソッド#Length|string.Length]]&lt;br /&gt;
*[[string型のメソッド#Count|string.Count]]&lt;br /&gt;
&lt;br /&gt;
==array型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/array/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
配列型は、インデックスを使用してアクセスできる変数のリストを表します。配列型は、結合、比較、等値演算子をサポートしています。&lt;br /&gt;
配列型の規定値は空の配列&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。この型の型指定修飾子は&amp;lt;code&amp;gt;array&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
配列型は必ずしも要素を含む必要も、同一の型である必要もありません。配列型への暗黙的な変換はサポートされていません。&lt;br /&gt;
明示的な変換を行うとき、その値を唯一の要素とする配列型に変換されます。配列型のメソッドには次のものがあります。&lt;br /&gt;
*[[配列型のメソッド#Add|array.Add]]&lt;br /&gt;
*[[配列型のメソッド#AddRange|array.AddRange]]&lt;br /&gt;
*[[配列型のメソッド#Remove|array.Remove]]&lt;br /&gt;
*[[配列型のメソッド#RemoveAt|array.RemoveAt]]&lt;br /&gt;
*[[配列型のメソッド#Insert|array.Insert]]&lt;br /&gt;
*[[配列型のメソッド#RemoveRange|array.RemoveRange]]&lt;br /&gt;
*[[配列型のメソッド#IndexOf|array.IndexOf]]&lt;br /&gt;
*[[配列型のメソッド#Contains|array.Contains]]&lt;br /&gt;
*[[配列型のメソッド#Sort|array.Sort]]&lt;br /&gt;
*[[配列型のメソッド#Reverse|array.Reverse]]&lt;br /&gt;
*[[配列型のメソッド#First|array.First]]&lt;br /&gt;
*[[配列型のメソッド#Last|array.Last]]&lt;br /&gt;
*[[配列型のメソッド#Flatten|array.Flatten]]&lt;br /&gt;
*[[配列型のメソッド#Marge|array.Merge]]&lt;br /&gt;
*[[配列型のメソッド#Foreach|array.Foreach]]&lt;br /&gt;
*[[配列型のメソッド#Length|array.Length]]&lt;br /&gt;
*[[配列型のメソッド#Count|array.Count]]&lt;br /&gt;
&lt;br /&gt;
==delegate型==&lt;br /&gt;
デリゲート型は、匿名関数のように一連のステートメントのまとまりを表します。デリゲート型は結合、比較、等値演算子をサポートしています。&lt;br /&gt;
デリゲート型の規定値は空のステートメント&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。デリゲート型への暗黙的な変換と明示的な変換の両方はサポートされていません。この型の型指定修飾子は&amp;lt;code&amp;gt;delegate&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
デリゲート型は、配列のように複数の要素を持つことができます。しかし、デリゲート型にはデリゲート型以外の要素を含めることはできません。&lt;br /&gt;
デリゲートについての詳しい説明は[[デリゲート]]の記事を参照してください。デリゲート型のメソッドには次のものがあります。&lt;br /&gt;
*[[デリゲート#Invoke|delegate.Invoke]]&lt;br /&gt;
*[[デリゲート#BeginInvoke|delegate.BeginInvoke]]&lt;br /&gt;
*[[デリゲート#Length/Count|delegate.Length]]&lt;br /&gt;
*[[デリゲート#Length/Count|delegate.Count]]&lt;br /&gt;
&lt;br /&gt;
==type型==&lt;br /&gt;
&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型は、変数の型を表します。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型は比較、等値演算子をサポートしています。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型の規定値は、&amp;lt;code&amp;gt;type.None&amp;lt;/code&amp;gt;です。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型への暗黙的な変換はサポートされていませんが、文字列型からの明示的な変換はサポートされます。この型の型指定修飾子は&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;です。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型のメソッドには次のものがあります。&lt;br /&gt;
*[[Type型のメソッド#Activate|type.Activate]]&lt;br /&gt;
[[Category:基本]]&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E5%A4%89%E6%95%B0&amp;diff=1269</id>
		<title>変数</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E5%A4%89%E6%95%B0&amp;diff=1269"/>
		<updated>2023-06-29T01:38:21Z</updated>

		<summary type="html">&lt;p&gt;Master: /* string型 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/general/variable/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
変数は、AliceScriptにおける主要な概念の一つです。変数は、任意の場所で宣言定義でき、その値を取り出したり代入することができます。&lt;br /&gt;
この記事では、多くの変数に共通する事項を説明した後、それぞれの型の特徴について説明します。&lt;br /&gt;
変数は、すべて基となる&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;から派生しています。これは、すべての変数に共通した操作セットを提供します。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの変数は、文字またはアンダースコアから始まり、任意の数の文字、数字、記号が続きます。[[キーワード|予約語]]を使用することはできません。次の例では、&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;という変数に&amp;lt;code&amp;gt;123&amp;lt;/code&amp;gt;を代入し定義します。その後で、その変数の値を[[Print]]関数を使って出力します。&lt;br /&gt;
 var a = 123;&lt;br /&gt;
 print(a);&lt;br /&gt;
通常、変数に代入されるのは常にその値です。つまり、ある変数に式の値を代入するとその値への参照が代入されます。&lt;br /&gt;
通常、変数を定義する際は次の形で宣言します。&lt;br /&gt;
 var (修飾子) 名前 = 値;&lt;br /&gt;
&lt;br /&gt;
=ローカル変数とスコープ=&lt;br /&gt;
変数はその有効な範囲内で、一意な名前である必要があります。この範囲をその変数のスコープと呼びます。スコープの範囲内では、同じ名前の変数を定義することはできませんし、反対にスコープの外に出ると、その範囲内で定義した変数は使用できません。&lt;br /&gt;
AliceScriptでいうところのスコープの範囲は、原則としてそのコードのブロック内です。コードのブロックは、およそそのコードの波括弧の中を指します。次の例を参照してください。&lt;br /&gt;
 function Func()&lt;br /&gt;
  {&lt;br /&gt;
      var a = 123;&lt;br /&gt;
  }&lt;br /&gt;
 Func();&lt;br /&gt;
 print(a);//例外発生&lt;br /&gt;
上記の例ではFuncを呼び出すことで、ローカル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が定義されていますがそのスコープの範囲外での呼び出しのため、関数外で変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;を使用することはできません。また、インクルードしたファイルに対してもスコープが適用されます。このため、異なるスクリプトファイル間でローカル変数を共有することはできません。&lt;br /&gt;
=グローバル変数=&lt;br /&gt;
ローカル変数と反対の性質を持つものとして、グローバル変数があります。これは、スコープ内外のどこでも定義でき、定義されたスコープ外でもその変数を使用できます。グローバル変数はスクリプトではなくインタプリタに直接登録されます。その変数をグローバル変数として宣言定義するには&amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt;キーワードを使用します。&lt;br /&gt;
 function Func()&lt;br /&gt;
  {&lt;br /&gt;
     var global a = 123;&lt;br /&gt;
  }&lt;br /&gt;
 Func();&lt;br /&gt;
 print(a);//出力:123&lt;br /&gt;
上記の例ではFuncを呼び出すことで、グローバル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が定義されているため、Funcの呼び出し後には、そのインタプリタで実行されるすべてのコードでグローバル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が使用できます。&lt;br /&gt;
=定数=&lt;br /&gt;
定数は、変数とは異なり、一度宣言すると再度代入したり値を変更することができません。これは、プログラム上で変更されたくない値(トークンなど)を定義する際に役立ちます。定数にもスコープが存在し、ローカル定数とグローバル定数があります。定数を定義するには&amp;lt;code&amp;gt;var&amp;lt;/code&amp;gt;キーワードの代わりに&amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt;キーワードを使用します。&lt;br /&gt;
 const KEY = “ABCD”;&lt;br /&gt;
 print(KEY);//出力例:ABCD&lt;br /&gt;
 KEY = “EFGH”;//例外発生&lt;br /&gt;
&lt;br /&gt;
=型=&lt;br /&gt;
AliceScriptのすべての変数および定数は、値に評価されるすべての[[式]]と同じように、型を持ちます。インタプリタはコード内で実行されるすべての演算が型安全になるようにします。例えば&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;型の変数には、その値を加算したり減算したりする算術演算が許可されます。しかし、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型にはその種類の演算は許可されません。次に、特定の型の規定値を使用して変数を初期化する例を示します。&lt;br /&gt;
&lt;br /&gt;
 var v = type.Activate();&lt;br /&gt;
&lt;br /&gt;
型には次の種類があります。&lt;br /&gt;
==variable型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/variable/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型は、すべての変数の値を表します。&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型は等値演算子をサポートします。この型から文字列型にのみ暗黙的な変換をサポートします。&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型のメソッドは次の通りです。&lt;br /&gt;
*[[variable型のメソッド#Dispose|variable.Dispose]]&lt;br /&gt;
*[[variable型のメソッド#Equals|variable.Equals]]&lt;br /&gt;
*[[variable型のメソッド#Clone|variable.Clone]]&lt;br /&gt;
*[[variable型のメソッド#DeepClone|variable.DeepClone]]&lt;br /&gt;
*[[variable型のメソッド#ToString|variable.ToString]]&lt;br /&gt;
*[[variable型のメソッド#Properties|variable.Properties]]&lt;br /&gt;
*[[variable型のメソッド#Type|variable.Type]]&lt;br /&gt;
*[[variable型のメソッド#Convert|variable.Convert]]&lt;br /&gt;
&lt;br /&gt;
==number型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/number/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
数値型は実数を表します。数値型は算術、比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの数値型の表現できるおおよその範囲は、±5.0 × 10−324 - ±1.7 × 10308(-15~17桁)で、サイズは8バイトです。&lt;br /&gt;
&lt;br /&gt;
数値型の規定値はゼロ&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;です。また、数値型で非数、正方向の無限、負方向の無限を表す定数がそれぞれ、&amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;PositiveInfinity&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;NegativeInfinity&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&lt;br /&gt;
数値型への暗黙的な変換は存在しません。型変換演算子を使用するか&amp;lt;code&amp;gt;Convert&amp;lt;/code&amp;gt;メソッドを使って、文字列型、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型、&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型からの明示的な変換がサポートされています。また、数値型専用のメソッドは存在しません。この型の型指定修飾子は&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの数値型では小数点以下の計算が予想通りにいかない場合があります。[[数値型の計算誤差]]の記事を参照してください。&lt;br /&gt;
&lt;br /&gt;
==bool型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/bool/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型は、ブール値の論理数を表します。&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型は論理、比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型の有効な値は&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;か&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;のいずれかです。&lt;br /&gt;
それぞれの値を表す定数がそれぞれ、&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型への暗黙的な変換は存在しません。特に、WSOFTScriptとは違い数値型の代わりに値を使用することはできません。また、文字列型、数値型、&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型からの明示的変換がサポートされます。&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型専用のメソッドは存在しません。この型の型指定修飾子は&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
==bytes型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/bytes/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型は、バイナリデータ配列を表します。&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型は比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型の規定値は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。この型の型指定修飾子は&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型への暗黙的な変換は存在しません。また、文字列型、数値型、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型からの明示的変換がサポートされます。&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型専用のメソッドは存在しません。&lt;br /&gt;
&lt;br /&gt;
==none型==&lt;br /&gt;
&amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;型の有効な値は唯一&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとります。また、&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;型は比較演算子のみをサポートします。&lt;br /&gt;
&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;の値を表す定数が&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;型への暗黙的な変換および明示的な変換はサポートされていません。&lt;br /&gt;
&lt;br /&gt;
==string型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/string/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
文字列型は、テキストを一連のUTF-16コード単位として表現します。文字列型は結合、比較、等値演算子をサポートしています。&lt;br /&gt;
文字列型の規定値は空の文字列&amp;lt;code&amp;gt;””&amp;lt;/code&amp;gt;です。また、この型の型指定修飾子は&amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
すべてのAliceScriptに組み込まれている型はすべて文字列型への暗黙的な変換をサポートしています。文字列型に限って、明示的な変換と明示的な変換は同じ動作になります。文字列型のメソッドは次のものがあります。&lt;br /&gt;
*[[string型のメソッド#Trim|string.Trim]]&lt;br /&gt;
*[[string型のメソッド#TrimStart|string.TrimStart]]&lt;br /&gt;
*[[string型のメソッド#TrimEnd|string.TrimEnd]]&lt;br /&gt;
*[[string型のメソッド#StratsWith|stirng.StartsWith]]&lt;br /&gt;
*[[string型のメソッド#EndsWith|string.EndsWith]] &lt;br /&gt;
*[[string型のメソッド#PadLeft|string.PadLeft]] &lt;br /&gt;
*[[string型のメソッド#PadRight|string.PadRight]] &lt;br /&gt;
*[[string型のメソッド#Normalize|string.Normalize]] &lt;br /&gt;
*[[string型のメソッド#CompareTo|string.CompareTo]] &lt;br /&gt;
*[[string型のメソッド#IsNormalized|string.IsNormalized]] &lt;br /&gt;
*[[string型のメソッド#IndexOf|string.IndexOf]]&lt;br /&gt;
*[[string型のメソッド#LastIndexOf|string.LastIndexOf]]&lt;br /&gt;
*[[string型のメソッド#Contains|string.Contains]]&lt;br /&gt;
*[[string型のメソッド#Replace|string.Replace]] &lt;br /&gt;
*[[string型のメソッド#Split|string.Split]] &lt;br /&gt;
*[[string型のメソッド#ToLower|string.ToLower]] &lt;br /&gt;
*[[string型のメソッド#ToUpper|string.ToUpper]] &lt;br /&gt;
*[[string型のメソッド#EmptyOrWhiteSpaces|string.EmptyOrWhiteSpaces]]&lt;br /&gt;
*[[string型のメソッド#Format|string.Format]]&lt;br /&gt;
*[[string型のメソッド#Length|string.Length]]&lt;br /&gt;
*[[string型のメソッド#Count|string.Count]]&lt;br /&gt;
&lt;br /&gt;
==array型==&lt;br /&gt;
配列型は、インデックスを使用してアクセスできる変数のリストを表します。配列型は、結合、比較、等値演算子をサポートしています。&lt;br /&gt;
配列型の規定値は空の配列&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。この型の型指定修飾子は&amp;lt;code&amp;gt;array&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
配列型は必ずしも要素を含む必要も、同一の型である必要もありません。配列型への暗黙的な変換はサポートされていません。&lt;br /&gt;
明示的な変換を行うとき、その値を唯一の要素とする配列型に変換されます。配列型のメソッドには次のものがあります。&lt;br /&gt;
*[[配列型のメソッド#Add|array.Add]]&lt;br /&gt;
*[[配列型のメソッド#AddRange|array.AddRange]]&lt;br /&gt;
*[[配列型のメソッド#Remove|array.Remove]]&lt;br /&gt;
*[[配列型のメソッド#RemoveAt|array.RemoveAt]]&lt;br /&gt;
*[[配列型のメソッド#Insert|array.Insert]]&lt;br /&gt;
*[[配列型のメソッド#RemoveRange|array.RemoveRange]]&lt;br /&gt;
*[[配列型のメソッド#IndexOf|array.IndexOf]]&lt;br /&gt;
*[[配列型のメソッド#Contains|array.Contains]]&lt;br /&gt;
*[[配列型のメソッド#Sort|array.Sort]]&lt;br /&gt;
*[[配列型のメソッド#Reverse|array.Reverse]]&lt;br /&gt;
*[[配列型のメソッド#First|array.First]]&lt;br /&gt;
*[[配列型のメソッド#Last|array.Last]]&lt;br /&gt;
*[[配列型のメソッド#Flatten|array.Flatten]]&lt;br /&gt;
*[[配列型のメソッド#Marge|array.Merge]]&lt;br /&gt;
*[[配列型のメソッド#Foreach|array.Foreach]]&lt;br /&gt;
*[[配列型のメソッド#Length|array.Length]]&lt;br /&gt;
*[[配列型のメソッド#Count|array.Count]]&lt;br /&gt;
&lt;br /&gt;
==delegate型==&lt;br /&gt;
デリゲート型は、匿名関数のように一連のステートメントのまとまりを表します。デリゲート型は結合、比較、等値演算子をサポートしています。&lt;br /&gt;
デリゲート型の規定値は空のステートメント&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。デリゲート型への暗黙的な変換と明示的な変換の両方はサポートされていません。この型の型指定修飾子は&amp;lt;code&amp;gt;delegate&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
デリゲート型は、配列のように複数の要素を持つことができます。しかし、デリゲート型にはデリゲート型以外の要素を含めることはできません。&lt;br /&gt;
デリゲートについての詳しい説明は[[デリゲート]]の記事を参照してください。デリゲート型のメソッドには次のものがあります。&lt;br /&gt;
*[[デリゲート#Invoke|delegate.Invoke]]&lt;br /&gt;
*[[デリゲート#BeginInvoke|delegate.BeginInvoke]]&lt;br /&gt;
*[[デリゲート#Length/Count|delegate.Length]]&lt;br /&gt;
*[[デリゲート#Length/Count|delegate.Count]]&lt;br /&gt;
&lt;br /&gt;
==type型==&lt;br /&gt;
&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型は、変数の型を表します。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型は比較、等値演算子をサポートしています。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型の規定値は、&amp;lt;code&amp;gt;type.None&amp;lt;/code&amp;gt;です。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型への暗黙的な変換はサポートされていませんが、文字列型からの明示的な変換はサポートされます。この型の型指定修飾子は&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;です。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型のメソッドには次のものがあります。&lt;br /&gt;
*[[Type型のメソッド#Activate|type.Activate]]&lt;br /&gt;
[[Category:基本]]&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E5%A4%89%E6%95%B0&amp;diff=1268</id>
		<title>変数</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E5%A4%89%E6%95%B0&amp;diff=1268"/>
		<updated>2023-06-29T01:37:47Z</updated>

		<summary type="html">&lt;p&gt;Master: /* bytes型 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/general/variable/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
変数は、AliceScriptにおける主要な概念の一つです。変数は、任意の場所で宣言定義でき、その値を取り出したり代入することができます。&lt;br /&gt;
この記事では、多くの変数に共通する事項を説明した後、それぞれの型の特徴について説明します。&lt;br /&gt;
変数は、すべて基となる&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;から派生しています。これは、すべての変数に共通した操作セットを提供します。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの変数は、文字またはアンダースコアから始まり、任意の数の文字、数字、記号が続きます。[[キーワード|予約語]]を使用することはできません。次の例では、&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;という変数に&amp;lt;code&amp;gt;123&amp;lt;/code&amp;gt;を代入し定義します。その後で、その変数の値を[[Print]]関数を使って出力します。&lt;br /&gt;
 var a = 123;&lt;br /&gt;
 print(a);&lt;br /&gt;
通常、変数に代入されるのは常にその値です。つまり、ある変数に式の値を代入するとその値への参照が代入されます。&lt;br /&gt;
通常、変数を定義する際は次の形で宣言します。&lt;br /&gt;
 var (修飾子) 名前 = 値;&lt;br /&gt;
&lt;br /&gt;
=ローカル変数とスコープ=&lt;br /&gt;
変数はその有効な範囲内で、一意な名前である必要があります。この範囲をその変数のスコープと呼びます。スコープの範囲内では、同じ名前の変数を定義することはできませんし、反対にスコープの外に出ると、その範囲内で定義した変数は使用できません。&lt;br /&gt;
AliceScriptでいうところのスコープの範囲は、原則としてそのコードのブロック内です。コードのブロックは、およそそのコードの波括弧の中を指します。次の例を参照してください。&lt;br /&gt;
 function Func()&lt;br /&gt;
  {&lt;br /&gt;
      var a = 123;&lt;br /&gt;
  }&lt;br /&gt;
 Func();&lt;br /&gt;
 print(a);//例外発生&lt;br /&gt;
上記の例ではFuncを呼び出すことで、ローカル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が定義されていますがそのスコープの範囲外での呼び出しのため、関数外で変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;を使用することはできません。また、インクルードしたファイルに対してもスコープが適用されます。このため、異なるスクリプトファイル間でローカル変数を共有することはできません。&lt;br /&gt;
=グローバル変数=&lt;br /&gt;
ローカル変数と反対の性質を持つものとして、グローバル変数があります。これは、スコープ内外のどこでも定義でき、定義されたスコープ外でもその変数を使用できます。グローバル変数はスクリプトではなくインタプリタに直接登録されます。その変数をグローバル変数として宣言定義するには&amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt;キーワードを使用します。&lt;br /&gt;
 function Func()&lt;br /&gt;
  {&lt;br /&gt;
     var global a = 123;&lt;br /&gt;
  }&lt;br /&gt;
 Func();&lt;br /&gt;
 print(a);//出力:123&lt;br /&gt;
上記の例ではFuncを呼び出すことで、グローバル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が定義されているため、Funcの呼び出し後には、そのインタプリタで実行されるすべてのコードでグローバル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が使用できます。&lt;br /&gt;
=定数=&lt;br /&gt;
定数は、変数とは異なり、一度宣言すると再度代入したり値を変更することができません。これは、プログラム上で変更されたくない値(トークンなど)を定義する際に役立ちます。定数にもスコープが存在し、ローカル定数とグローバル定数があります。定数を定義するには&amp;lt;code&amp;gt;var&amp;lt;/code&amp;gt;キーワードの代わりに&amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt;キーワードを使用します。&lt;br /&gt;
 const KEY = “ABCD”;&lt;br /&gt;
 print(KEY);//出力例:ABCD&lt;br /&gt;
 KEY = “EFGH”;//例外発生&lt;br /&gt;
&lt;br /&gt;
=型=&lt;br /&gt;
AliceScriptのすべての変数および定数は、値に評価されるすべての[[式]]と同じように、型を持ちます。インタプリタはコード内で実行されるすべての演算が型安全になるようにします。例えば&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;型の変数には、その値を加算したり減算したりする算術演算が許可されます。しかし、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型にはその種類の演算は許可されません。次に、特定の型の規定値を使用して変数を初期化する例を示します。&lt;br /&gt;
&lt;br /&gt;
 var v = type.Activate();&lt;br /&gt;
&lt;br /&gt;
型には次の種類があります。&lt;br /&gt;
==variable型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/variable/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型は、すべての変数の値を表します。&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型は等値演算子をサポートします。この型から文字列型にのみ暗黙的な変換をサポートします。&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型のメソッドは次の通りです。&lt;br /&gt;
*[[variable型のメソッド#Dispose|variable.Dispose]]&lt;br /&gt;
*[[variable型のメソッド#Equals|variable.Equals]]&lt;br /&gt;
*[[variable型のメソッド#Clone|variable.Clone]]&lt;br /&gt;
*[[variable型のメソッド#DeepClone|variable.DeepClone]]&lt;br /&gt;
*[[variable型のメソッド#ToString|variable.ToString]]&lt;br /&gt;
*[[variable型のメソッド#Properties|variable.Properties]]&lt;br /&gt;
*[[variable型のメソッド#Type|variable.Type]]&lt;br /&gt;
*[[variable型のメソッド#Convert|variable.Convert]]&lt;br /&gt;
&lt;br /&gt;
==number型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/number/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
数値型は実数を表します。数値型は算術、比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの数値型の表現できるおおよその範囲は、±5.0 × 10−324 - ±1.7 × 10308(-15~17桁)で、サイズは8バイトです。&lt;br /&gt;
&lt;br /&gt;
数値型の規定値はゼロ&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;です。また、数値型で非数、正方向の無限、負方向の無限を表す定数がそれぞれ、&amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;PositiveInfinity&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;NegativeInfinity&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&lt;br /&gt;
数値型への暗黙的な変換は存在しません。型変換演算子を使用するか&amp;lt;code&amp;gt;Convert&amp;lt;/code&amp;gt;メソッドを使って、文字列型、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型、&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型からの明示的な変換がサポートされています。また、数値型専用のメソッドは存在しません。この型の型指定修飾子は&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの数値型では小数点以下の計算が予想通りにいかない場合があります。[[数値型の計算誤差]]の記事を参照してください。&lt;br /&gt;
&lt;br /&gt;
==bool型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/bool/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型は、ブール値の論理数を表します。&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型は論理、比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型の有効な値は&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;か&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;のいずれかです。&lt;br /&gt;
それぞれの値を表す定数がそれぞれ、&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型への暗黙的な変換は存在しません。特に、WSOFTScriptとは違い数値型の代わりに値を使用することはできません。また、文字列型、数値型、&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型からの明示的変換がサポートされます。&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型専用のメソッドは存在しません。この型の型指定修飾子は&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
==bytes型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/bytes/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型は、バイナリデータ配列を表します。&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型は比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型の規定値は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。この型の型指定修飾子は&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型への暗黙的な変換は存在しません。また、文字列型、数値型、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型からの明示的変換がサポートされます。&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型専用のメソッドは存在しません。&lt;br /&gt;
&lt;br /&gt;
==none型==&lt;br /&gt;
&amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;型の有効な値は唯一&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとります。また、&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;型は比較演算子のみをサポートします。&lt;br /&gt;
&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;の値を表す定数が&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;型への暗黙的な変換および明示的な変換はサポートされていません。&lt;br /&gt;
&lt;br /&gt;
==string型==&lt;br /&gt;
文字列型は、テキストを一連のUTF-16コード単位として表現します。文字列型は結合、比較、等値演算子をサポートしています。&lt;br /&gt;
文字列型の規定値は空の文字列&amp;lt;code&amp;gt;””&amp;lt;/code&amp;gt;です。また、この型の型指定修飾子は&amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
すべてのAliceScriptに組み込まれている型はすべて文字列型への暗黙的な変換をサポートしています。文字列型に限って、明示的な変換と明示的な変換は同じ動作になります。文字列型のメソッドは次のものがあります。&lt;br /&gt;
*[[string型のメソッド#Trim|string.Trim]]&lt;br /&gt;
*[[string型のメソッド#TrimStart|string.TrimStart]]&lt;br /&gt;
*[[string型のメソッド#TrimEnd|string.TrimEnd]]&lt;br /&gt;
*[[string型のメソッド#StratsWith|stirng.StartsWith]]&lt;br /&gt;
*[[string型のメソッド#EndsWith|string.EndsWith]] &lt;br /&gt;
*[[string型のメソッド#PadLeft|string.PadLeft]] &lt;br /&gt;
*[[string型のメソッド#PadRight|string.PadRight]] &lt;br /&gt;
*[[string型のメソッド#Normalize|string.Normalize]] &lt;br /&gt;
*[[string型のメソッド#CompareTo|string.CompareTo]] &lt;br /&gt;
*[[string型のメソッド#IsNormalized|string.IsNormalized]] &lt;br /&gt;
*[[string型のメソッド#IndexOf|string.IndexOf]]&lt;br /&gt;
*[[string型のメソッド#LastIndexOf|string.LastIndexOf]]&lt;br /&gt;
*[[string型のメソッド#Contains|string.Contains]]&lt;br /&gt;
*[[string型のメソッド#Replace|string.Replace]] &lt;br /&gt;
*[[string型のメソッド#Split|string.Split]] &lt;br /&gt;
*[[string型のメソッド#ToLower|string.ToLower]] &lt;br /&gt;
*[[string型のメソッド#ToUpper|string.ToUpper]] &lt;br /&gt;
*[[string型のメソッド#EmptyOrWhiteSpaces|string.EmptyOrWhiteSpaces]]&lt;br /&gt;
*[[string型のメソッド#Format|string.Format]]&lt;br /&gt;
*[[string型のメソッド#Length|string.Length]]&lt;br /&gt;
*[[string型のメソッド#Count|string.Count]]&lt;br /&gt;
&lt;br /&gt;
==array型==&lt;br /&gt;
配列型は、インデックスを使用してアクセスできる変数のリストを表します。配列型は、結合、比較、等値演算子をサポートしています。&lt;br /&gt;
配列型の規定値は空の配列&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。この型の型指定修飾子は&amp;lt;code&amp;gt;array&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
配列型は必ずしも要素を含む必要も、同一の型である必要もありません。配列型への暗黙的な変換はサポートされていません。&lt;br /&gt;
明示的な変換を行うとき、その値を唯一の要素とする配列型に変換されます。配列型のメソッドには次のものがあります。&lt;br /&gt;
*[[配列型のメソッド#Add|array.Add]]&lt;br /&gt;
*[[配列型のメソッド#AddRange|array.AddRange]]&lt;br /&gt;
*[[配列型のメソッド#Remove|array.Remove]]&lt;br /&gt;
*[[配列型のメソッド#RemoveAt|array.RemoveAt]]&lt;br /&gt;
*[[配列型のメソッド#Insert|array.Insert]]&lt;br /&gt;
*[[配列型のメソッド#RemoveRange|array.RemoveRange]]&lt;br /&gt;
*[[配列型のメソッド#IndexOf|array.IndexOf]]&lt;br /&gt;
*[[配列型のメソッド#Contains|array.Contains]]&lt;br /&gt;
*[[配列型のメソッド#Sort|array.Sort]]&lt;br /&gt;
*[[配列型のメソッド#Reverse|array.Reverse]]&lt;br /&gt;
*[[配列型のメソッド#First|array.First]]&lt;br /&gt;
*[[配列型のメソッド#Last|array.Last]]&lt;br /&gt;
*[[配列型のメソッド#Flatten|array.Flatten]]&lt;br /&gt;
*[[配列型のメソッド#Marge|array.Merge]]&lt;br /&gt;
*[[配列型のメソッド#Foreach|array.Foreach]]&lt;br /&gt;
*[[配列型のメソッド#Length|array.Length]]&lt;br /&gt;
*[[配列型のメソッド#Count|array.Count]]&lt;br /&gt;
&lt;br /&gt;
==delegate型==&lt;br /&gt;
デリゲート型は、匿名関数のように一連のステートメントのまとまりを表します。デリゲート型は結合、比較、等値演算子をサポートしています。&lt;br /&gt;
デリゲート型の規定値は空のステートメント&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。デリゲート型への暗黙的な変換と明示的な変換の両方はサポートされていません。この型の型指定修飾子は&amp;lt;code&amp;gt;delegate&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
デリゲート型は、配列のように複数の要素を持つことができます。しかし、デリゲート型にはデリゲート型以外の要素を含めることはできません。&lt;br /&gt;
デリゲートについての詳しい説明は[[デリゲート]]の記事を参照してください。デリゲート型のメソッドには次のものがあります。&lt;br /&gt;
*[[デリゲート#Invoke|delegate.Invoke]]&lt;br /&gt;
*[[デリゲート#BeginInvoke|delegate.BeginInvoke]]&lt;br /&gt;
*[[デリゲート#Length/Count|delegate.Length]]&lt;br /&gt;
*[[デリゲート#Length/Count|delegate.Count]]&lt;br /&gt;
&lt;br /&gt;
==type型==&lt;br /&gt;
&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型は、変数の型を表します。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型は比較、等値演算子をサポートしています。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型の規定値は、&amp;lt;code&amp;gt;type.None&amp;lt;/code&amp;gt;です。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型への暗黙的な変換はサポートされていませんが、文字列型からの明示的な変換はサポートされます。この型の型指定修飾子は&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;です。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型のメソッドには次のものがあります。&lt;br /&gt;
*[[Type型のメソッド#Activate|type.Activate]]&lt;br /&gt;
[[Category:基本]]&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E5%A4%89%E6%95%B0&amp;diff=1267</id>
		<title>変数</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E5%A4%89%E6%95%B0&amp;diff=1267"/>
		<updated>2023-06-29T01:37:11Z</updated>

		<summary type="html">&lt;p&gt;Master: /* bool型 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/general/variable/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
変数は、AliceScriptにおける主要な概念の一つです。変数は、任意の場所で宣言定義でき、その値を取り出したり代入することができます。&lt;br /&gt;
この記事では、多くの変数に共通する事項を説明した後、それぞれの型の特徴について説明します。&lt;br /&gt;
変数は、すべて基となる&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;から派生しています。これは、すべての変数に共通した操作セットを提供します。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの変数は、文字またはアンダースコアから始まり、任意の数の文字、数字、記号が続きます。[[キーワード|予約語]]を使用することはできません。次の例では、&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;という変数に&amp;lt;code&amp;gt;123&amp;lt;/code&amp;gt;を代入し定義します。その後で、その変数の値を[[Print]]関数を使って出力します。&lt;br /&gt;
 var a = 123;&lt;br /&gt;
 print(a);&lt;br /&gt;
通常、変数に代入されるのは常にその値です。つまり、ある変数に式の値を代入するとその値への参照が代入されます。&lt;br /&gt;
通常、変数を定義する際は次の形で宣言します。&lt;br /&gt;
 var (修飾子) 名前 = 値;&lt;br /&gt;
&lt;br /&gt;
=ローカル変数とスコープ=&lt;br /&gt;
変数はその有効な範囲内で、一意な名前である必要があります。この範囲をその変数のスコープと呼びます。スコープの範囲内では、同じ名前の変数を定義することはできませんし、反対にスコープの外に出ると、その範囲内で定義した変数は使用できません。&lt;br /&gt;
AliceScriptでいうところのスコープの範囲は、原則としてそのコードのブロック内です。コードのブロックは、およそそのコードの波括弧の中を指します。次の例を参照してください。&lt;br /&gt;
 function Func()&lt;br /&gt;
  {&lt;br /&gt;
      var a = 123;&lt;br /&gt;
  }&lt;br /&gt;
 Func();&lt;br /&gt;
 print(a);//例外発生&lt;br /&gt;
上記の例ではFuncを呼び出すことで、ローカル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が定義されていますがそのスコープの範囲外での呼び出しのため、関数外で変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;を使用することはできません。また、インクルードしたファイルに対してもスコープが適用されます。このため、異なるスクリプトファイル間でローカル変数を共有することはできません。&lt;br /&gt;
=グローバル変数=&lt;br /&gt;
ローカル変数と反対の性質を持つものとして、グローバル変数があります。これは、スコープ内外のどこでも定義でき、定義されたスコープ外でもその変数を使用できます。グローバル変数はスクリプトではなくインタプリタに直接登録されます。その変数をグローバル変数として宣言定義するには&amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt;キーワードを使用します。&lt;br /&gt;
 function Func()&lt;br /&gt;
  {&lt;br /&gt;
     var global a = 123;&lt;br /&gt;
  }&lt;br /&gt;
 Func();&lt;br /&gt;
 print(a);//出力:123&lt;br /&gt;
上記の例ではFuncを呼び出すことで、グローバル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が定義されているため、Funcの呼び出し後には、そのインタプリタで実行されるすべてのコードでグローバル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が使用できます。&lt;br /&gt;
=定数=&lt;br /&gt;
定数は、変数とは異なり、一度宣言すると再度代入したり値を変更することができません。これは、プログラム上で変更されたくない値(トークンなど)を定義する際に役立ちます。定数にもスコープが存在し、ローカル定数とグローバル定数があります。定数を定義するには&amp;lt;code&amp;gt;var&amp;lt;/code&amp;gt;キーワードの代わりに&amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt;キーワードを使用します。&lt;br /&gt;
 const KEY = “ABCD”;&lt;br /&gt;
 print(KEY);//出力例:ABCD&lt;br /&gt;
 KEY = “EFGH”;//例外発生&lt;br /&gt;
&lt;br /&gt;
=型=&lt;br /&gt;
AliceScriptのすべての変数および定数は、値に評価されるすべての[[式]]と同じように、型を持ちます。インタプリタはコード内で実行されるすべての演算が型安全になるようにします。例えば&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;型の変数には、その値を加算したり減算したりする算術演算が許可されます。しかし、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型にはその種類の演算は許可されません。次に、特定の型の規定値を使用して変数を初期化する例を示します。&lt;br /&gt;
&lt;br /&gt;
 var v = type.Activate();&lt;br /&gt;
&lt;br /&gt;
型には次の種類があります。&lt;br /&gt;
==variable型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/variable/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型は、すべての変数の値を表します。&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型は等値演算子をサポートします。この型から文字列型にのみ暗黙的な変換をサポートします。&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型のメソッドは次の通りです。&lt;br /&gt;
*[[variable型のメソッド#Dispose|variable.Dispose]]&lt;br /&gt;
*[[variable型のメソッド#Equals|variable.Equals]]&lt;br /&gt;
*[[variable型のメソッド#Clone|variable.Clone]]&lt;br /&gt;
*[[variable型のメソッド#DeepClone|variable.DeepClone]]&lt;br /&gt;
*[[variable型のメソッド#ToString|variable.ToString]]&lt;br /&gt;
*[[variable型のメソッド#Properties|variable.Properties]]&lt;br /&gt;
*[[variable型のメソッド#Type|variable.Type]]&lt;br /&gt;
*[[variable型のメソッド#Convert|variable.Convert]]&lt;br /&gt;
&lt;br /&gt;
==number型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/number/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
数値型は実数を表します。数値型は算術、比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの数値型の表現できるおおよその範囲は、±5.0 × 10−324 - ±1.7 × 10308(-15~17桁)で、サイズは8バイトです。&lt;br /&gt;
&lt;br /&gt;
数値型の規定値はゼロ&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;です。また、数値型で非数、正方向の無限、負方向の無限を表す定数がそれぞれ、&amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;PositiveInfinity&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;NegativeInfinity&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&lt;br /&gt;
数値型への暗黙的な変換は存在しません。型変換演算子を使用するか&amp;lt;code&amp;gt;Convert&amp;lt;/code&amp;gt;メソッドを使って、文字列型、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型、&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型からの明示的な変換がサポートされています。また、数値型専用のメソッドは存在しません。この型の型指定修飾子は&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの数値型では小数点以下の計算が予想通りにいかない場合があります。[[数値型の計算誤差]]の記事を参照してください。&lt;br /&gt;
&lt;br /&gt;
==bool型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/bool/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型は、ブール値の論理数を表します。&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型は論理、比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型の有効な値は&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;か&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;のいずれかです。&lt;br /&gt;
それぞれの値を表す定数がそれぞれ、&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型への暗黙的な変換は存在しません。特に、WSOFTScriptとは違い数値型の代わりに値を使用することはできません。また、文字列型、数値型、&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型からの明示的変換がサポートされます。&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型専用のメソッドは存在しません。この型の型指定修飾子は&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
==bytes型==&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型は、バイナリデータ配列を表します。&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型は比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型の規定値は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。この型の型指定修飾子は&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型への暗黙的な変換は存在しません。また、文字列型、数値型、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型からの明示的変換がサポートされます。&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型専用のメソッドは存在しません。&lt;br /&gt;
==none型==&lt;br /&gt;
&amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;型の有効な値は唯一&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとります。また、&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;型は比較演算子のみをサポートします。&lt;br /&gt;
&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;の値を表す定数が&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;型への暗黙的な変換および明示的な変換はサポートされていません。&lt;br /&gt;
&lt;br /&gt;
==string型==&lt;br /&gt;
文字列型は、テキストを一連のUTF-16コード単位として表現します。文字列型は結合、比較、等値演算子をサポートしています。&lt;br /&gt;
文字列型の規定値は空の文字列&amp;lt;code&amp;gt;””&amp;lt;/code&amp;gt;です。また、この型の型指定修飾子は&amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
すべてのAliceScriptに組み込まれている型はすべて文字列型への暗黙的な変換をサポートしています。文字列型に限って、明示的な変換と明示的な変換は同じ動作になります。文字列型のメソッドは次のものがあります。&lt;br /&gt;
*[[string型のメソッド#Trim|string.Trim]]&lt;br /&gt;
*[[string型のメソッド#TrimStart|string.TrimStart]]&lt;br /&gt;
*[[string型のメソッド#TrimEnd|string.TrimEnd]]&lt;br /&gt;
*[[string型のメソッド#StratsWith|stirng.StartsWith]]&lt;br /&gt;
*[[string型のメソッド#EndsWith|string.EndsWith]] &lt;br /&gt;
*[[string型のメソッド#PadLeft|string.PadLeft]] &lt;br /&gt;
*[[string型のメソッド#PadRight|string.PadRight]] &lt;br /&gt;
*[[string型のメソッド#Normalize|string.Normalize]] &lt;br /&gt;
*[[string型のメソッド#CompareTo|string.CompareTo]] &lt;br /&gt;
*[[string型のメソッド#IsNormalized|string.IsNormalized]] &lt;br /&gt;
*[[string型のメソッド#IndexOf|string.IndexOf]]&lt;br /&gt;
*[[string型のメソッド#LastIndexOf|string.LastIndexOf]]&lt;br /&gt;
*[[string型のメソッド#Contains|string.Contains]]&lt;br /&gt;
*[[string型のメソッド#Replace|string.Replace]] &lt;br /&gt;
*[[string型のメソッド#Split|string.Split]] &lt;br /&gt;
*[[string型のメソッド#ToLower|string.ToLower]] &lt;br /&gt;
*[[string型のメソッド#ToUpper|string.ToUpper]] &lt;br /&gt;
*[[string型のメソッド#EmptyOrWhiteSpaces|string.EmptyOrWhiteSpaces]]&lt;br /&gt;
*[[string型のメソッド#Format|string.Format]]&lt;br /&gt;
*[[string型のメソッド#Length|string.Length]]&lt;br /&gt;
*[[string型のメソッド#Count|string.Count]]&lt;br /&gt;
&lt;br /&gt;
==array型==&lt;br /&gt;
配列型は、インデックスを使用してアクセスできる変数のリストを表します。配列型は、結合、比較、等値演算子をサポートしています。&lt;br /&gt;
配列型の規定値は空の配列&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。この型の型指定修飾子は&amp;lt;code&amp;gt;array&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
配列型は必ずしも要素を含む必要も、同一の型である必要もありません。配列型への暗黙的な変換はサポートされていません。&lt;br /&gt;
明示的な変換を行うとき、その値を唯一の要素とする配列型に変換されます。配列型のメソッドには次のものがあります。&lt;br /&gt;
*[[配列型のメソッド#Add|array.Add]]&lt;br /&gt;
*[[配列型のメソッド#AddRange|array.AddRange]]&lt;br /&gt;
*[[配列型のメソッド#Remove|array.Remove]]&lt;br /&gt;
*[[配列型のメソッド#RemoveAt|array.RemoveAt]]&lt;br /&gt;
*[[配列型のメソッド#Insert|array.Insert]]&lt;br /&gt;
*[[配列型のメソッド#RemoveRange|array.RemoveRange]]&lt;br /&gt;
*[[配列型のメソッド#IndexOf|array.IndexOf]]&lt;br /&gt;
*[[配列型のメソッド#Contains|array.Contains]]&lt;br /&gt;
*[[配列型のメソッド#Sort|array.Sort]]&lt;br /&gt;
*[[配列型のメソッド#Reverse|array.Reverse]]&lt;br /&gt;
*[[配列型のメソッド#First|array.First]]&lt;br /&gt;
*[[配列型のメソッド#Last|array.Last]]&lt;br /&gt;
*[[配列型のメソッド#Flatten|array.Flatten]]&lt;br /&gt;
*[[配列型のメソッド#Marge|array.Merge]]&lt;br /&gt;
*[[配列型のメソッド#Foreach|array.Foreach]]&lt;br /&gt;
*[[配列型のメソッド#Length|array.Length]]&lt;br /&gt;
*[[配列型のメソッド#Count|array.Count]]&lt;br /&gt;
&lt;br /&gt;
==delegate型==&lt;br /&gt;
デリゲート型は、匿名関数のように一連のステートメントのまとまりを表します。デリゲート型は結合、比較、等値演算子をサポートしています。&lt;br /&gt;
デリゲート型の規定値は空のステートメント&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。デリゲート型への暗黙的な変換と明示的な変換の両方はサポートされていません。この型の型指定修飾子は&amp;lt;code&amp;gt;delegate&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
デリゲート型は、配列のように複数の要素を持つことができます。しかし、デリゲート型にはデリゲート型以外の要素を含めることはできません。&lt;br /&gt;
デリゲートについての詳しい説明は[[デリゲート]]の記事を参照してください。デリゲート型のメソッドには次のものがあります。&lt;br /&gt;
*[[デリゲート#Invoke|delegate.Invoke]]&lt;br /&gt;
*[[デリゲート#BeginInvoke|delegate.BeginInvoke]]&lt;br /&gt;
*[[デリゲート#Length/Count|delegate.Length]]&lt;br /&gt;
*[[デリゲート#Length/Count|delegate.Count]]&lt;br /&gt;
&lt;br /&gt;
==type型==&lt;br /&gt;
&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型は、変数の型を表します。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型は比較、等値演算子をサポートしています。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型の規定値は、&amp;lt;code&amp;gt;type.None&amp;lt;/code&amp;gt;です。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型への暗黙的な変換はサポートされていませんが、文字列型からの明示的な変換はサポートされます。この型の型指定修飾子は&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;です。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型のメソッドには次のものがあります。&lt;br /&gt;
*[[Type型のメソッド#Activate|type.Activate]]&lt;br /&gt;
[[Category:基本]]&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E5%A4%89%E6%95%B0&amp;diff=1266</id>
		<title>変数</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E5%A4%89%E6%95%B0&amp;diff=1266"/>
		<updated>2023-06-29T01:36:06Z</updated>

		<summary type="html">&lt;p&gt;Master: /* number型 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/general/variable/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
変数は、AliceScriptにおける主要な概念の一つです。変数は、任意の場所で宣言定義でき、その値を取り出したり代入することができます。&lt;br /&gt;
この記事では、多くの変数に共通する事項を説明した後、それぞれの型の特徴について説明します。&lt;br /&gt;
変数は、すべて基となる&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;から派生しています。これは、すべての変数に共通した操作セットを提供します。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの変数は、文字またはアンダースコアから始まり、任意の数の文字、数字、記号が続きます。[[キーワード|予約語]]を使用することはできません。次の例では、&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;という変数に&amp;lt;code&amp;gt;123&amp;lt;/code&amp;gt;を代入し定義します。その後で、その変数の値を[[Print]]関数を使って出力します。&lt;br /&gt;
 var a = 123;&lt;br /&gt;
 print(a);&lt;br /&gt;
通常、変数に代入されるのは常にその値です。つまり、ある変数に式の値を代入するとその値への参照が代入されます。&lt;br /&gt;
通常、変数を定義する際は次の形で宣言します。&lt;br /&gt;
 var (修飾子) 名前 = 値;&lt;br /&gt;
&lt;br /&gt;
=ローカル変数とスコープ=&lt;br /&gt;
変数はその有効な範囲内で、一意な名前である必要があります。この範囲をその変数のスコープと呼びます。スコープの範囲内では、同じ名前の変数を定義することはできませんし、反対にスコープの外に出ると、その範囲内で定義した変数は使用できません。&lt;br /&gt;
AliceScriptでいうところのスコープの範囲は、原則としてそのコードのブロック内です。コードのブロックは、およそそのコードの波括弧の中を指します。次の例を参照してください。&lt;br /&gt;
 function Func()&lt;br /&gt;
  {&lt;br /&gt;
      var a = 123;&lt;br /&gt;
  }&lt;br /&gt;
 Func();&lt;br /&gt;
 print(a);//例外発生&lt;br /&gt;
上記の例ではFuncを呼び出すことで、ローカル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が定義されていますがそのスコープの範囲外での呼び出しのため、関数外で変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;を使用することはできません。また、インクルードしたファイルに対してもスコープが適用されます。このため、異なるスクリプトファイル間でローカル変数を共有することはできません。&lt;br /&gt;
=グローバル変数=&lt;br /&gt;
ローカル変数と反対の性質を持つものとして、グローバル変数があります。これは、スコープ内外のどこでも定義でき、定義されたスコープ外でもその変数を使用できます。グローバル変数はスクリプトではなくインタプリタに直接登録されます。その変数をグローバル変数として宣言定義するには&amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt;キーワードを使用します。&lt;br /&gt;
 function Func()&lt;br /&gt;
  {&lt;br /&gt;
     var global a = 123;&lt;br /&gt;
  }&lt;br /&gt;
 Func();&lt;br /&gt;
 print(a);//出力:123&lt;br /&gt;
上記の例ではFuncを呼び出すことで、グローバル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が定義されているため、Funcの呼び出し後には、そのインタプリタで実行されるすべてのコードでグローバル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が使用できます。&lt;br /&gt;
=定数=&lt;br /&gt;
定数は、変数とは異なり、一度宣言すると再度代入したり値を変更することができません。これは、プログラム上で変更されたくない値(トークンなど)を定義する際に役立ちます。定数にもスコープが存在し、ローカル定数とグローバル定数があります。定数を定義するには&amp;lt;code&amp;gt;var&amp;lt;/code&amp;gt;キーワードの代わりに&amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt;キーワードを使用します。&lt;br /&gt;
 const KEY = “ABCD”;&lt;br /&gt;
 print(KEY);//出力例:ABCD&lt;br /&gt;
 KEY = “EFGH”;//例外発生&lt;br /&gt;
&lt;br /&gt;
=型=&lt;br /&gt;
AliceScriptのすべての変数および定数は、値に評価されるすべての[[式]]と同じように、型を持ちます。インタプリタはコード内で実行されるすべての演算が型安全になるようにします。例えば&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;型の変数には、その値を加算したり減算したりする算術演算が許可されます。しかし、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型にはその種類の演算は許可されません。次に、特定の型の規定値を使用して変数を初期化する例を示します。&lt;br /&gt;
&lt;br /&gt;
 var v = type.Activate();&lt;br /&gt;
&lt;br /&gt;
型には次の種類があります。&lt;br /&gt;
==variable型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/variable/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型は、すべての変数の値を表します。&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型は等値演算子をサポートします。この型から文字列型にのみ暗黙的な変換をサポートします。&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型のメソッドは次の通りです。&lt;br /&gt;
*[[variable型のメソッド#Dispose|variable.Dispose]]&lt;br /&gt;
*[[variable型のメソッド#Equals|variable.Equals]]&lt;br /&gt;
*[[variable型のメソッド#Clone|variable.Clone]]&lt;br /&gt;
*[[variable型のメソッド#DeepClone|variable.DeepClone]]&lt;br /&gt;
*[[variable型のメソッド#ToString|variable.ToString]]&lt;br /&gt;
*[[variable型のメソッド#Properties|variable.Properties]]&lt;br /&gt;
*[[variable型のメソッド#Type|variable.Type]]&lt;br /&gt;
*[[variable型のメソッド#Convert|variable.Convert]]&lt;br /&gt;
&lt;br /&gt;
==number型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/number/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
数値型は実数を表します。数値型は算術、比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの数値型の表現できるおおよその範囲は、±5.0 × 10−324 - ±1.7 × 10308(-15~17桁)で、サイズは8バイトです。&lt;br /&gt;
&lt;br /&gt;
数値型の規定値はゼロ&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;です。また、数値型で非数、正方向の無限、負方向の無限を表す定数がそれぞれ、&amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;PositiveInfinity&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;NegativeInfinity&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&lt;br /&gt;
数値型への暗黙的な変換は存在しません。型変換演算子を使用するか&amp;lt;code&amp;gt;Convert&amp;lt;/code&amp;gt;メソッドを使って、文字列型、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型、&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型からの明示的な変換がサポートされています。また、数値型専用のメソッドは存在しません。この型の型指定修飾子は&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの数値型では小数点以下の計算が予想通りにいかない場合があります。[[数値型の計算誤差]]の記事を参照してください。&lt;br /&gt;
&lt;br /&gt;
==bool型==&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型は、ブール値の論理数を表します。&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型は論理、比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型の有効な値は&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;か&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;のいずれかです。&lt;br /&gt;
それぞれの値を表す定数がそれぞれ、&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型への暗黙的な変換は存在しません。特に、WSOFTScriptとは違い数値型の代わりに値を使用することはできません。また、文字列型、数値型、&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型からの明示的変換がサポートされます。&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型専用のメソッドは存在しません。この型の型指定修飾子は&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;です。&lt;br /&gt;
==bytes型==&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型は、バイナリデータ配列を表します。&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型は比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型の規定値は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。この型の型指定修飾子は&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型への暗黙的な変換は存在しません。また、文字列型、数値型、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型からの明示的変換がサポートされます。&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型専用のメソッドは存在しません。&lt;br /&gt;
==none型==&lt;br /&gt;
&amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;型の有効な値は唯一&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとります。また、&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;型は比較演算子のみをサポートします。&lt;br /&gt;
&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;の値を表す定数が&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;型への暗黙的な変換および明示的な変換はサポートされていません。&lt;br /&gt;
&lt;br /&gt;
==string型==&lt;br /&gt;
文字列型は、テキストを一連のUTF-16コード単位として表現します。文字列型は結合、比較、等値演算子をサポートしています。&lt;br /&gt;
文字列型の規定値は空の文字列&amp;lt;code&amp;gt;””&amp;lt;/code&amp;gt;です。また、この型の型指定修飾子は&amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
すべてのAliceScriptに組み込まれている型はすべて文字列型への暗黙的な変換をサポートしています。文字列型に限って、明示的な変換と明示的な変換は同じ動作になります。文字列型のメソッドは次のものがあります。&lt;br /&gt;
*[[string型のメソッド#Trim|string.Trim]]&lt;br /&gt;
*[[string型のメソッド#TrimStart|string.TrimStart]]&lt;br /&gt;
*[[string型のメソッド#TrimEnd|string.TrimEnd]]&lt;br /&gt;
*[[string型のメソッド#StratsWith|stirng.StartsWith]]&lt;br /&gt;
*[[string型のメソッド#EndsWith|string.EndsWith]] &lt;br /&gt;
*[[string型のメソッド#PadLeft|string.PadLeft]] &lt;br /&gt;
*[[string型のメソッド#PadRight|string.PadRight]] &lt;br /&gt;
*[[string型のメソッド#Normalize|string.Normalize]] &lt;br /&gt;
*[[string型のメソッド#CompareTo|string.CompareTo]] &lt;br /&gt;
*[[string型のメソッド#IsNormalized|string.IsNormalized]] &lt;br /&gt;
*[[string型のメソッド#IndexOf|string.IndexOf]]&lt;br /&gt;
*[[string型のメソッド#LastIndexOf|string.LastIndexOf]]&lt;br /&gt;
*[[string型のメソッド#Contains|string.Contains]]&lt;br /&gt;
*[[string型のメソッド#Replace|string.Replace]] &lt;br /&gt;
*[[string型のメソッド#Split|string.Split]] &lt;br /&gt;
*[[string型のメソッド#ToLower|string.ToLower]] &lt;br /&gt;
*[[string型のメソッド#ToUpper|string.ToUpper]] &lt;br /&gt;
*[[string型のメソッド#EmptyOrWhiteSpaces|string.EmptyOrWhiteSpaces]]&lt;br /&gt;
*[[string型のメソッド#Format|string.Format]]&lt;br /&gt;
*[[string型のメソッド#Length|string.Length]]&lt;br /&gt;
*[[string型のメソッド#Count|string.Count]]&lt;br /&gt;
&lt;br /&gt;
==array型==&lt;br /&gt;
配列型は、インデックスを使用してアクセスできる変数のリストを表します。配列型は、結合、比較、等値演算子をサポートしています。&lt;br /&gt;
配列型の規定値は空の配列&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。この型の型指定修飾子は&amp;lt;code&amp;gt;array&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
配列型は必ずしも要素を含む必要も、同一の型である必要もありません。配列型への暗黙的な変換はサポートされていません。&lt;br /&gt;
明示的な変換を行うとき、その値を唯一の要素とする配列型に変換されます。配列型のメソッドには次のものがあります。&lt;br /&gt;
*[[配列型のメソッド#Add|array.Add]]&lt;br /&gt;
*[[配列型のメソッド#AddRange|array.AddRange]]&lt;br /&gt;
*[[配列型のメソッド#Remove|array.Remove]]&lt;br /&gt;
*[[配列型のメソッド#RemoveAt|array.RemoveAt]]&lt;br /&gt;
*[[配列型のメソッド#Insert|array.Insert]]&lt;br /&gt;
*[[配列型のメソッド#RemoveRange|array.RemoveRange]]&lt;br /&gt;
*[[配列型のメソッド#IndexOf|array.IndexOf]]&lt;br /&gt;
*[[配列型のメソッド#Contains|array.Contains]]&lt;br /&gt;
*[[配列型のメソッド#Sort|array.Sort]]&lt;br /&gt;
*[[配列型のメソッド#Reverse|array.Reverse]]&lt;br /&gt;
*[[配列型のメソッド#First|array.First]]&lt;br /&gt;
*[[配列型のメソッド#Last|array.Last]]&lt;br /&gt;
*[[配列型のメソッド#Flatten|array.Flatten]]&lt;br /&gt;
*[[配列型のメソッド#Marge|array.Merge]]&lt;br /&gt;
*[[配列型のメソッド#Foreach|array.Foreach]]&lt;br /&gt;
*[[配列型のメソッド#Length|array.Length]]&lt;br /&gt;
*[[配列型のメソッド#Count|array.Count]]&lt;br /&gt;
&lt;br /&gt;
==delegate型==&lt;br /&gt;
デリゲート型は、匿名関数のように一連のステートメントのまとまりを表します。デリゲート型は結合、比較、等値演算子をサポートしています。&lt;br /&gt;
デリゲート型の規定値は空のステートメント&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。デリゲート型への暗黙的な変換と明示的な変換の両方はサポートされていません。この型の型指定修飾子は&amp;lt;code&amp;gt;delegate&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
デリゲート型は、配列のように複数の要素を持つことができます。しかし、デリゲート型にはデリゲート型以外の要素を含めることはできません。&lt;br /&gt;
デリゲートについての詳しい説明は[[デリゲート]]の記事を参照してください。デリゲート型のメソッドには次のものがあります。&lt;br /&gt;
*[[デリゲート#Invoke|delegate.Invoke]]&lt;br /&gt;
*[[デリゲート#BeginInvoke|delegate.BeginInvoke]]&lt;br /&gt;
*[[デリゲート#Length/Count|delegate.Length]]&lt;br /&gt;
*[[デリゲート#Length/Count|delegate.Count]]&lt;br /&gt;
&lt;br /&gt;
==type型==&lt;br /&gt;
&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型は、変数の型を表します。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型は比較、等値演算子をサポートしています。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型の規定値は、&amp;lt;code&amp;gt;type.None&amp;lt;/code&amp;gt;です。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型への暗黙的な変換はサポートされていませんが、文字列型からの明示的な変換はサポートされます。この型の型指定修飾子は&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;です。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型のメソッドには次のものがあります。&lt;br /&gt;
*[[Type型のメソッド#Activate|type.Activate]]&lt;br /&gt;
[[Category:基本]]&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E5%A4%89%E6%95%B0&amp;diff=1265</id>
		<title>変数</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E5%A4%89%E6%95%B0&amp;diff=1265"/>
		<updated>2023-06-29T01:35:11Z</updated>

		<summary type="html">&lt;p&gt;Master: /* variable型 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/general/variable/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
変数は、AliceScriptにおける主要な概念の一つです。変数は、任意の場所で宣言定義でき、その値を取り出したり代入することができます。&lt;br /&gt;
この記事では、多くの変数に共通する事項を説明した後、それぞれの型の特徴について説明します。&lt;br /&gt;
変数は、すべて基となる&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;から派生しています。これは、すべての変数に共通した操作セットを提供します。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの変数は、文字またはアンダースコアから始まり、任意の数の文字、数字、記号が続きます。[[キーワード|予約語]]を使用することはできません。次の例では、&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;という変数に&amp;lt;code&amp;gt;123&amp;lt;/code&amp;gt;を代入し定義します。その後で、その変数の値を[[Print]]関数を使って出力します。&lt;br /&gt;
 var a = 123;&lt;br /&gt;
 print(a);&lt;br /&gt;
通常、変数に代入されるのは常にその値です。つまり、ある変数に式の値を代入するとその値への参照が代入されます。&lt;br /&gt;
通常、変数を定義する際は次の形で宣言します。&lt;br /&gt;
 var (修飾子) 名前 = 値;&lt;br /&gt;
&lt;br /&gt;
=ローカル変数とスコープ=&lt;br /&gt;
変数はその有効な範囲内で、一意な名前である必要があります。この範囲をその変数のスコープと呼びます。スコープの範囲内では、同じ名前の変数を定義することはできませんし、反対にスコープの外に出ると、その範囲内で定義した変数は使用できません。&lt;br /&gt;
AliceScriptでいうところのスコープの範囲は、原則としてそのコードのブロック内です。コードのブロックは、およそそのコードの波括弧の中を指します。次の例を参照してください。&lt;br /&gt;
 function Func()&lt;br /&gt;
  {&lt;br /&gt;
      var a = 123;&lt;br /&gt;
  }&lt;br /&gt;
 Func();&lt;br /&gt;
 print(a);//例外発生&lt;br /&gt;
上記の例ではFuncを呼び出すことで、ローカル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が定義されていますがそのスコープの範囲外での呼び出しのため、関数外で変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;を使用することはできません。また、インクルードしたファイルに対してもスコープが適用されます。このため、異なるスクリプトファイル間でローカル変数を共有することはできません。&lt;br /&gt;
=グローバル変数=&lt;br /&gt;
ローカル変数と反対の性質を持つものとして、グローバル変数があります。これは、スコープ内外のどこでも定義でき、定義されたスコープ外でもその変数を使用できます。グローバル変数はスクリプトではなくインタプリタに直接登録されます。その変数をグローバル変数として宣言定義するには&amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt;キーワードを使用します。&lt;br /&gt;
 function Func()&lt;br /&gt;
  {&lt;br /&gt;
     var global a = 123;&lt;br /&gt;
  }&lt;br /&gt;
 Func();&lt;br /&gt;
 print(a);//出力:123&lt;br /&gt;
上記の例ではFuncを呼び出すことで、グローバル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が定義されているため、Funcの呼び出し後には、そのインタプリタで実行されるすべてのコードでグローバル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が使用できます。&lt;br /&gt;
=定数=&lt;br /&gt;
定数は、変数とは異なり、一度宣言すると再度代入したり値を変更することができません。これは、プログラム上で変更されたくない値(トークンなど)を定義する際に役立ちます。定数にもスコープが存在し、ローカル定数とグローバル定数があります。定数を定義するには&amp;lt;code&amp;gt;var&amp;lt;/code&amp;gt;キーワードの代わりに&amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt;キーワードを使用します。&lt;br /&gt;
 const KEY = “ABCD”;&lt;br /&gt;
 print(KEY);//出力例:ABCD&lt;br /&gt;
 KEY = “EFGH”;//例外発生&lt;br /&gt;
&lt;br /&gt;
=型=&lt;br /&gt;
AliceScriptのすべての変数および定数は、値に評価されるすべての[[式]]と同じように、型を持ちます。インタプリタはコード内で実行されるすべての演算が型安全になるようにします。例えば&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;型の変数には、その値を加算したり減算したりする算術演算が許可されます。しかし、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型にはその種類の演算は許可されません。次に、特定の型の規定値を使用して変数を初期化する例を示します。&lt;br /&gt;
&lt;br /&gt;
 var v = type.Activate();&lt;br /&gt;
&lt;br /&gt;
型には次の種類があります。&lt;br /&gt;
==variable型==&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/variable/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型は、すべての変数の値を表します。&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型は等値演算子をサポートします。この型から文字列型にのみ暗黙的な変換をサポートします。&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型のメソッドは次の通りです。&lt;br /&gt;
*[[variable型のメソッド#Dispose|variable.Dispose]]&lt;br /&gt;
*[[variable型のメソッド#Equals|variable.Equals]]&lt;br /&gt;
*[[variable型のメソッド#Clone|variable.Clone]]&lt;br /&gt;
*[[variable型のメソッド#DeepClone|variable.DeepClone]]&lt;br /&gt;
*[[variable型のメソッド#ToString|variable.ToString]]&lt;br /&gt;
*[[variable型のメソッド#Properties|variable.Properties]]&lt;br /&gt;
*[[variable型のメソッド#Type|variable.Type]]&lt;br /&gt;
*[[variable型のメソッド#Convert|variable.Convert]]&lt;br /&gt;
&lt;br /&gt;
==number型==&lt;br /&gt;
数値型は実数を表します。数値型は算術、比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの数値型の表現できるおおよその範囲は、±5.0 × 10−324 - ±1.7 × 10308(-15~17桁)で、サイズは8バイトです。&lt;br /&gt;
&lt;br /&gt;
数値型の規定値はゼロ&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;です。また、数値型で非数、正方向の無限、負方向の無限を表す定数がそれぞれ、&amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;PositiveInfinity&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;NegativeInfinity&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&lt;br /&gt;
数値型への暗黙的な変換は存在しません。型変換演算子を使用するか&amp;lt;code&amp;gt;Convert&amp;lt;/code&amp;gt;メソッドを使って、文字列型、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型、&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型からの明示的な変換がサポートされています。また、数値型専用のメソッドは存在しません。この型の型指定修飾子は&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの数値型では小数点以下の計算が予想通りにいかない場合があります。[[数値型の計算誤差]]の記事を参照してください。&lt;br /&gt;
&lt;br /&gt;
==bool型==&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型は、ブール値の論理数を表します。&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型は論理、比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型の有効な値は&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;か&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;のいずれかです。&lt;br /&gt;
それぞれの値を表す定数がそれぞれ、&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型への暗黙的な変換は存在しません。特に、WSOFTScriptとは違い数値型の代わりに値を使用することはできません。また、文字列型、数値型、&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型からの明示的変換がサポートされます。&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型専用のメソッドは存在しません。この型の型指定修飾子は&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;です。&lt;br /&gt;
==bytes型==&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型は、バイナリデータ配列を表します。&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型は比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型の規定値は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。この型の型指定修飾子は&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型への暗黙的な変換は存在しません。また、文字列型、数値型、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型からの明示的変換がサポートされます。&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型専用のメソッドは存在しません。&lt;br /&gt;
==none型==&lt;br /&gt;
&amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;型の有効な値は唯一&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとります。また、&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;型は比較演算子のみをサポートします。&lt;br /&gt;
&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;の値を表す定数が&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;型への暗黙的な変換および明示的な変換はサポートされていません。&lt;br /&gt;
&lt;br /&gt;
==string型==&lt;br /&gt;
文字列型は、テキストを一連のUTF-16コード単位として表現します。文字列型は結合、比較、等値演算子をサポートしています。&lt;br /&gt;
文字列型の規定値は空の文字列&amp;lt;code&amp;gt;””&amp;lt;/code&amp;gt;です。また、この型の型指定修飾子は&amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
すべてのAliceScriptに組み込まれている型はすべて文字列型への暗黙的な変換をサポートしています。文字列型に限って、明示的な変換と明示的な変換は同じ動作になります。文字列型のメソッドは次のものがあります。&lt;br /&gt;
*[[string型のメソッド#Trim|string.Trim]]&lt;br /&gt;
*[[string型のメソッド#TrimStart|string.TrimStart]]&lt;br /&gt;
*[[string型のメソッド#TrimEnd|string.TrimEnd]]&lt;br /&gt;
*[[string型のメソッド#StratsWith|stirng.StartsWith]]&lt;br /&gt;
*[[string型のメソッド#EndsWith|string.EndsWith]] &lt;br /&gt;
*[[string型のメソッド#PadLeft|string.PadLeft]] &lt;br /&gt;
*[[string型のメソッド#PadRight|string.PadRight]] &lt;br /&gt;
*[[string型のメソッド#Normalize|string.Normalize]] &lt;br /&gt;
*[[string型のメソッド#CompareTo|string.CompareTo]] &lt;br /&gt;
*[[string型のメソッド#IsNormalized|string.IsNormalized]] &lt;br /&gt;
*[[string型のメソッド#IndexOf|string.IndexOf]]&lt;br /&gt;
*[[string型のメソッド#LastIndexOf|string.LastIndexOf]]&lt;br /&gt;
*[[string型のメソッド#Contains|string.Contains]]&lt;br /&gt;
*[[string型のメソッド#Replace|string.Replace]] &lt;br /&gt;
*[[string型のメソッド#Split|string.Split]] &lt;br /&gt;
*[[string型のメソッド#ToLower|string.ToLower]] &lt;br /&gt;
*[[string型のメソッド#ToUpper|string.ToUpper]] &lt;br /&gt;
*[[string型のメソッド#EmptyOrWhiteSpaces|string.EmptyOrWhiteSpaces]]&lt;br /&gt;
*[[string型のメソッド#Format|string.Format]]&lt;br /&gt;
*[[string型のメソッド#Length|string.Length]]&lt;br /&gt;
*[[string型のメソッド#Count|string.Count]]&lt;br /&gt;
&lt;br /&gt;
==array型==&lt;br /&gt;
配列型は、インデックスを使用してアクセスできる変数のリストを表します。配列型は、結合、比較、等値演算子をサポートしています。&lt;br /&gt;
配列型の規定値は空の配列&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。この型の型指定修飾子は&amp;lt;code&amp;gt;array&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
配列型は必ずしも要素を含む必要も、同一の型である必要もありません。配列型への暗黙的な変換はサポートされていません。&lt;br /&gt;
明示的な変換を行うとき、その値を唯一の要素とする配列型に変換されます。配列型のメソッドには次のものがあります。&lt;br /&gt;
*[[配列型のメソッド#Add|array.Add]]&lt;br /&gt;
*[[配列型のメソッド#AddRange|array.AddRange]]&lt;br /&gt;
*[[配列型のメソッド#Remove|array.Remove]]&lt;br /&gt;
*[[配列型のメソッド#RemoveAt|array.RemoveAt]]&lt;br /&gt;
*[[配列型のメソッド#Insert|array.Insert]]&lt;br /&gt;
*[[配列型のメソッド#RemoveRange|array.RemoveRange]]&lt;br /&gt;
*[[配列型のメソッド#IndexOf|array.IndexOf]]&lt;br /&gt;
*[[配列型のメソッド#Contains|array.Contains]]&lt;br /&gt;
*[[配列型のメソッド#Sort|array.Sort]]&lt;br /&gt;
*[[配列型のメソッド#Reverse|array.Reverse]]&lt;br /&gt;
*[[配列型のメソッド#First|array.First]]&lt;br /&gt;
*[[配列型のメソッド#Last|array.Last]]&lt;br /&gt;
*[[配列型のメソッド#Flatten|array.Flatten]]&lt;br /&gt;
*[[配列型のメソッド#Marge|array.Merge]]&lt;br /&gt;
*[[配列型のメソッド#Foreach|array.Foreach]]&lt;br /&gt;
*[[配列型のメソッド#Length|array.Length]]&lt;br /&gt;
*[[配列型のメソッド#Count|array.Count]]&lt;br /&gt;
&lt;br /&gt;
==delegate型==&lt;br /&gt;
デリゲート型は、匿名関数のように一連のステートメントのまとまりを表します。デリゲート型は結合、比較、等値演算子をサポートしています。&lt;br /&gt;
デリゲート型の規定値は空のステートメント&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。デリゲート型への暗黙的な変換と明示的な変換の両方はサポートされていません。この型の型指定修飾子は&amp;lt;code&amp;gt;delegate&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
デリゲート型は、配列のように複数の要素を持つことができます。しかし、デリゲート型にはデリゲート型以外の要素を含めることはできません。&lt;br /&gt;
デリゲートについての詳しい説明は[[デリゲート]]の記事を参照してください。デリゲート型のメソッドには次のものがあります。&lt;br /&gt;
*[[デリゲート#Invoke|delegate.Invoke]]&lt;br /&gt;
*[[デリゲート#BeginInvoke|delegate.BeginInvoke]]&lt;br /&gt;
*[[デリゲート#Length/Count|delegate.Length]]&lt;br /&gt;
*[[デリゲート#Length/Count|delegate.Count]]&lt;br /&gt;
&lt;br /&gt;
==type型==&lt;br /&gt;
&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型は、変数の型を表します。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型は比較、等値演算子をサポートしています。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型の規定値は、&amp;lt;code&amp;gt;type.None&amp;lt;/code&amp;gt;です。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型への暗黙的な変換はサポートされていませんが、文字列型からの明示的な変換はサポートされます。この型の型指定修飾子は&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;です。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型のメソッドには次のものがあります。&lt;br /&gt;
*[[Type型のメソッド#Activate|type.Activate]]&lt;br /&gt;
[[Category:基本]]&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AE%E3%83%93%E3%83%AB%E3%83%89&amp;diff=1264</id>
		<title>パッケージのビルド</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AE%E3%83%93%E3%83%AB%E3%83%89&amp;diff=1264"/>
		<updated>2023-06-29T01:33:08Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/tutorial/build/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
[[Category:チュートリアル]]&lt;br /&gt;
あなたが作成したスクリプトをAlicePackage形式のアプリケーションとして展開するには、AlicePackage形式にビルドする必要があります。&lt;br /&gt;
AlicePackageは、さまざまなスクリプトやリソース、パッケージ、ライブラリをまとめた書庫と考えることができます。詳しく知るには[[AlicePackage]]の記事を参照してください。パッケージをビルドするには、次の方法のいずれかを取ることができます。&lt;br /&gt;
*IceBuildを使用する&lt;br /&gt;
*ビルドスクリプトを一から作成する&lt;br /&gt;
この記事では、まず初めに簡単にパッケージをビルドすることができるツールである、IceBuildを使用する方法を解説し、次にビルドスクリプトを一から作成してビルドする方法について触れます。&lt;br /&gt;
&lt;br /&gt;
=IceBuild=&lt;br /&gt;
AlicePackage Build Environmentは、[[AlicePackage]]形式のアプリケーションをビルドするためのプラットフォームです。IceBuildとも呼ばれるこのエンジンは、パッケージを処理およびビルドする方法を制御する方法を提供します。&lt;br /&gt;
ディレクトリに対して&amp;lt;code&amp;gt;icebuild.ice&amp;lt;/code&amp;gt;を実行するとAlicePackageを簡単に出力できます。&lt;br /&gt;
IceBuildは、[[AliceScriptのダウンロード#その他のファイルのダウンロード|AliceScriptのダウンロード]]の記事からダウンロードできます。&lt;br /&gt;
&lt;br /&gt;
IceBuildは、ビルドする前にパッケージマニフェストファイルを確認し、適切なエントリポイントが指定されているか、埋め込まれたリソースファイルが存在するかなどの基本的な事項を確認した後パッケージのビルドを開始します。ビルドスクリプトの使用が特に必要な場合を除いて、基本的にAlicePackageのビルドにはIceBuildを使用することを推奨します。&lt;br /&gt;
==コマンドラインから使用する==&lt;br /&gt;
IceBuildを使用するには、適切なコマンドライン引数とともに、適切なディレクトリ名を&amp;lt;code&amp;gt;icebuild.ice&amp;lt;/code&amp;gt;に渡します。例えば、ディレクトリ&amp;lt;code&amp;gt;TestPkg&amp;lt;/code&amp;gt;から&amp;lt;code&amp;gt;TestPkg.ice&amp;lt;/code&amp;gt;をビルドするには、次のコマンドを使用します。&lt;br /&gt;
 icebuild.ice TestPkg -out:TestPkg.ice&lt;br /&gt;
IceBuildのコマンドライン引数について詳しく知るには[[IceBuildコマンドラインリファレンス]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
.iceファイルをコマンドプロンプトから実行できるようにするには、[https://docs.wsoft.ws/products/alice/tutorial/ice-to-association/ チュートリアル:iceファイルの関連付け]を参照してください。&lt;br /&gt;
&lt;br /&gt;
==AliceScriptから使用する==&lt;br /&gt;
AliceScriptからIceBuildを呼び出すこともできます。この方法を使用して、IceBuildの安定性とビルドスクリプトを一から実行することのメリットを同時に享受することができます。この方法を使用するときは、例えば次の状況が考えられます。&lt;br /&gt;
*パッケージ化する前に、ファイルまたはディレクトリに前処理することを希望している&lt;br /&gt;
*ビルドが成功したとき、出力されたパッケージを別の場所にコピーすることを希望している&lt;br /&gt;
*ビルド後に後処理を実行することを希望している&lt;br /&gt;
次の例は、AliceScriptでIceBuildを呼び出すサンプルです。&lt;br /&gt;
 import “icebuild.ice”;&lt;br /&gt;
 using WSOFT.AliceScript.IceBuild;&lt;br /&gt;
 &lt;br /&gt;
 //ソースディレクトリへのパス&lt;br /&gt;
 const SourcePath = “{ソースディレクトリへのパス}”;&lt;br /&gt;
 //出力先ファイルのパス&lt;br /&gt;
 const TargetPath = “{出力先ファイルのパス}”;&lt;br /&gt;
 &lt;br /&gt;
 //希望する場合はここに前処理を記述&lt;br /&gt;
 &lt;br /&gt;
 //ビルド実行&lt;br /&gt;
 var result = IceBuild.BuildPackage(SourcePath,TargetPath);&lt;br /&gt;
 &lt;br /&gt;
 if(result.Success)&lt;br /&gt;
  {&lt;br /&gt;
     //ビルド成功&lt;br /&gt;
     //希望する場合はビルド成功時の後処理を記述&lt;br /&gt;
     print(“パッケージのビルドが成功しました”);&lt;br /&gt;
  }&lt;br /&gt;
 else&lt;br /&gt;
  {&lt;br /&gt;
     //ビルド失敗&lt;br /&gt;
     //希望する場合はビルド失敗時の後処理を記述&lt;br /&gt;
     print(“パッケージのビルドが失敗しました”);&lt;br /&gt;
     for(var i=0;i&amp;lt;result.Errors.Length;++i)&lt;br /&gt;
      {&lt;br /&gt;
         print(“エラー {0}/{1} :{2}”,i,result.Errors.Length,result.Errors[i]);&lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
  //希望する場合はビルド完了時の後処理を記述&lt;br /&gt;
  print(“パッケージのビルドが完了しました”);&lt;br /&gt;
&lt;br /&gt;
=ビルドスクリプトを一から作成する=&lt;br /&gt;
また、&amp;lt;code&amp;gt;Alice.Packaging&amp;lt;/code&amp;gt;名前空間にあるクラスを使用して自分で一からパッケージをビルドするスクリプトを作成することもできます。&lt;br /&gt;
&lt;br /&gt;
ディレクトリをAlicePackage形式にビルドする手順は、主に次の通りです。&lt;br /&gt;
#&amp;lt;code&amp;gt;manifest.xml&amp;lt;/code&amp;gt;を含むビルド対象のディレクトリをZip形式で圧縮する&lt;br /&gt;
#1のファイルをAlicePackage形式に変換する&lt;br /&gt;
このままでもAlicePackage形式として実行可能ですが、できる限りパッケージ化前に少なくともパッケージマニフェストファイルの簡易チェックをしてください。ユーザーおよび開発者はAlicePackageに正しい内容のパッケージマニフェストファイルが含まれていることを期待しますし、実際にそのようなプログラムが流行することはAliceエコシステムの健全な成長を妨げかねません。&lt;br /&gt;
次の例はビルドスクリプトの一例です。&lt;br /&gt;
 import “Alice.IO”;&lt;br /&gt;
 import “Alice.Packaging”;&lt;br /&gt;
 &lt;br /&gt;
 const SourcePath = “{ソースディレクトリのパス}”;&lt;br /&gt;
 const TargetPath = “{出力ファイルのパス}”;&lt;br /&gt;
 　&lt;br /&gt;
 //パッケージマニフェストファイルのパス &lt;br /&gt;
 var manifestPath = Path_Combine(SourcePath,”manifest.xml”);&lt;br /&gt;
 &lt;br /&gt;
 //ソースディレクトリとパッケージマニフェストファイルの存在を確認&lt;br /&gt;
 if(!(Directory_exists(SourcePath) &amp;amp;&amp;amp; File_Exists(manifestPath)))&lt;br /&gt;
   {&lt;br /&gt;
      throw(“エラー:ソースディレクトリが存在しないか、パッケージマニフェストファイルが存在しません”);&lt;br /&gt;
      return;&lt;br /&gt;
   }&lt;br /&gt;
 //パッケージマニフェストファイルの簡易チェック&lt;br /&gt;
 if(Package_GetManifestFromFile(manifestPath) == null)&lt;br /&gt;
   {&lt;br /&gt;
      throw(“エラー:パッケージマニフェストファイルが不正な形式です”);&lt;br /&gt;
      return;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
 //Zipファイルの出力に使用する一時的なファイルパス&lt;br /&gt;
 var tempPath = Path_GetTempFileName(true);&lt;br /&gt;
 &lt;br /&gt;
 print(“圧縮: {0} -&amp;gt; {1}”,SourcePath,tempPath);&lt;br /&gt;
 //ソースディレクトリをZip形式で圧縮&lt;br /&gt;
 Zip_CreateFromDirectory(SourcePath,tempPath);&lt;br /&gt;
 &lt;br /&gt;
 print(“変換: {0} -&amp;gt; {1}”,tempPath,TargetPath);&lt;br /&gt;
 //圧縮したZipファイルからAlicePackageファイルを生成&lt;br /&gt;
 Package_CreateFromZipFile(tempPath,TargetPath);&lt;br /&gt;
 &lt;br /&gt;
 print(“パッケージのビルドが成功しました”);&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E6%95%B0%E5%80%A4%E5%9E%8B%E3%81%AE%E8%A8%88%E7%AE%97%E8%AA%A4%E5%B7%AE&amp;diff=1263</id>
		<title>数値型の計算誤差</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E6%95%B0%E5%80%A4%E5%9E%8B%E3%81%AE%E8%A8%88%E7%AE%97%E8%AA%A4%E5%B7%AE&amp;diff=1263"/>
		<updated>2023-06-29T01:32:33Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/tutorial/calculation-error/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
[[Category:チュートリアル]]&lt;br /&gt;
AliceScriptの数値型は、倍精度浮動小数点数数値型と定められており、この規格はIEEE754として標準化されています。&lt;br /&gt;
しかしこの数値型で小数の計算をしているとき、その計算結果が期待通りでないことがあります。この記事では、その理由について説明します。&lt;br /&gt;
=計算誤差の例=&lt;br /&gt;
 0.1 + 0.2 == 0.3&lt;br /&gt;
数学では、上記の式は正しく&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;と評価されますし、ほとんどの開発者も、それが正しいことを期待します。&lt;br /&gt;
では、AliceScriptでこの式を評価してみます。&lt;br /&gt;
 print(0.1 + 0.2 == 0.3);&lt;br /&gt;
このコードを実行すると、&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;が出力されます。&lt;br /&gt;
=理由=&lt;br /&gt;
これらの計算誤差はバグではありません。AliceScriptの数値型のような浮動小数点数数値型は、値を2進数で格納していますが、ほとんどの10進数の小数は2進数で表すことができず、その近似値として表現されます。近似値の誤差が例に示したような計算誤差として現れます。&lt;br /&gt;
&lt;br /&gt;
知的好奇心旺盛なあなたのために、もう少し説明します。例えば10進数の&amp;lt;code&amp;gt;0.1&amp;lt;/code&amp;gt;を2進数に変換すると&amp;lt;code&amp;gt;0.0001100110011…&amp;lt;/code&amp;gt;となり、&amp;lt;code&amp;gt;0011&amp;lt;/code&amp;gt;が永遠と循環します。そのため&amp;lt;code&amp;gt;0.1&amp;lt;/code&amp;gt;を倍精度浮動小数点数数値型に格納するには、適当な桁で丸める必要があります。このとき、最も近い偶数に値を丸めます。その結果として&amp;lt;code&amp;gt;0.1&amp;lt;/code&amp;gt;は数値型では2進数で&amp;lt;code&amp;gt;0.0001100110011001100110011001100110011001100110011001101&amp;lt;/code&amp;gt;となります。これを10進数に戻す&amp;lt;code&amp;gt;0.1000000000000000055511151231257827021181583404541015625&amp;lt;/code&amp;gt;となり、&amp;lt;code&amp;gt;0.1&amp;lt;/code&amp;gt;ではなくなります。&lt;br /&gt;
&lt;br /&gt;
ただし整数は、有効桁数15桁の範囲内であれば、正確に格納できます。また小数であっても、k/2^n (k,nは整数)で表すこともできる小数は2進数で表現できるため、正確に格納できます。&lt;br /&gt;
&lt;br /&gt;
なおこのような誤差は、AliceScript固有のものではありません。IEEE 754の2進浮動小数点形式を採用しているシステムでは、同じことが起こりえます。&lt;br /&gt;
&lt;br /&gt;
=回避策=&lt;br /&gt;
==許容範囲を決めて値を比較する==&lt;br /&gt;
二つの浮動小数点数数値型数を比較するとき、例えばそれらが等しいかを調べるときに&amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt;を使うのは危険です。両者が全く等しい場合のみ等しいと判断するのではなく、「両者の差の絶対値がある程度であれば等しいと認める」など許容範囲を決めて比較する方が安全です。次の例は、許容範囲を定めt、&amp;lt;code&amp;gt;0.000001&amp;lt;/code&amp;gt;未満の差の場合に等しいと判断します。&lt;br /&gt;
 import “Alice.Math”;&lt;br /&gt;
 &lt;br /&gt;
 ///二つの小数が等しいと認められるかどうかを評価します&lt;br /&gt;
 ///パラメータ a:一方の値&lt;br /&gt;
 ///         b:もう一方の値&lt;br /&gt;
 /// tolerance:許容できる誤差の最大の値(この数値は常に正)     &lt;br /&gt;
 function NumEqual(number a,number b,number tolerance)&lt;br /&gt;
  {&lt;br /&gt;
     return (math_abs(a - b) &amp;lt; tolerance);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
 var numA = 0.1 + 0.2;&lt;br /&gt;
 var numB = 0.3;&lt;br /&gt;
 ///許容範囲&lt;br /&gt;
 var tolerance = 0.000001;&lt;br /&gt;
 if(NumEqual(numA,numB,tolerance))&lt;br /&gt;
  {&lt;br /&gt;
     print(“二値は等しいと認められました”);&lt;br /&gt;
  }&lt;br /&gt;
==一度整数にした後で変換する==&lt;br /&gt;
他には、例えば一度整数にしてから計算する方法も考えられます。次の例では、二つの数を整数にすることができる数&amp;lt;code&amp;gt;dis ** 10&amp;lt;/code&amp;gt;を求めて二数を整数にした後、計算を行うことで誤差を防ぎます。ただしこの場合でも、有効数字15桁以上の数は正確に扱うことができません。&lt;br /&gt;
 import “Alice.Math”;&lt;br /&gt;
 &lt;br /&gt;
 ///与えられた数の小数点以下の桁数を取得します&lt;br /&gt;
 function GetDisitsUnder1(number num)&lt;br /&gt;
  {&lt;br /&gt;
     var priceString = price.ToString().TrimEnd('0');&lt;br /&gt;
     int index = priceString.IndexOf('.');&lt;br /&gt;
     if (index == -1){return 0;}&lt;br /&gt;
     return priceString.Substring(index + 1).Length;&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
 ///二つの小数が等しいかどうかを判断します&lt;br /&gt;
 function NumEqual(number numA,numbner numB)&lt;br /&gt;
  {&lt;br /&gt;
     //numA,numBの小数点以下の桁数(すなわち、10の何乗倍すれば整数になるか)&lt;br /&gt;
     var nAd = GetDisitsUnder1(numA);&lt;br /&gt;
     var nBd = GetDisitsUnder1(numB);&lt;br /&gt;
     //二つの小数の小数点以下桁数のうち多い方&lt;br /&gt;
     var dis = math_max(nAd,nBd);&lt;br /&gt;
     &lt;br /&gt;
     //numA,numBを整数化したもの&lt;br /&gt;
     var rA = numA * (dis ** 10);&lt;br /&gt;
     var rB = numB * (dis ** 10);&lt;br /&gt;
     &lt;br /&gt;
     return (rA == rB);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
 ///二つの小数の和を求めます&lt;br /&gt;
 function Sum(number numA,number numB)&lt;br /&gt;
  {&lt;br /&gt;
     //numA,numBの小数点以下の桁数(すなわち、10の何乗倍すれば整数になるか)&lt;br /&gt;
     var nAd = GetDisitsUnder1(numA);&lt;br /&gt;
     var nBd = GetDisitsUnder1(numB);&lt;br /&gt;
     //二つの小数の小数点以下桁数のうち多い方&lt;br /&gt;
     var dis = math_max(nAd,nBd);&lt;br /&gt;
     &lt;br /&gt;
     //numA,numBを整数化したもの&lt;br /&gt;
     var rA = numA * (dis ** 10);&lt;br /&gt;
     var rB = numB * (dis ** 10);&lt;br /&gt;
     //整数化されたものの計算結果&lt;br /&gt;
     var result = rA + rB;&lt;br /&gt;
 &lt;br /&gt;
     return (result / (dis ** 10));&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
 print(NumEqual(0.1+0.2,0.3));//出力例:true&lt;br /&gt;
 print(Sum(0.1,0.2));//出力例:0.3&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=AliceModel&amp;diff=1262</id>
		<title>AliceModel</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=AliceModel&amp;diff=1262"/>
		<updated>2023-06-29T01:31:26Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/general/saim/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
[[Category:基本]]&lt;br /&gt;
'''AliceModel'''または'''標準AliceScript実装モデル'''('''''SAIM''''' :''Standard AliceScript Implementation Model '')は、複数のAliceModel実装間で使用されるAliceScriptのインタプリタとそれに付属するAPIの正式な仕様です。AliceModelは、AliceScriptのインタプリタの各実装による差異を最小限にとどめるために策定されました。これにより、AliceModelを実装するどのインタプリタでも、同じコードやパッケージを実行することが可能になります。AliceModelはAliceScriptの言語構造とそれに対するインタプリタの実装を定めたAlice.Interpreterと付属するAPIから呼び出すことができる機能を定めたAlice.Runtimeからなります。&lt;br /&gt;
=AliceModelのバージョン=&lt;br /&gt;
AliceModelはバージョン管理されています。AliceModelのバージョンは直線的かつ基本的に論理的同心円形です。バージョンナンバリングの大小のみで新旧を比較でき、より新しいバージョンは普通それ以前のバージョンの機能を含みえます。その一方で、一部には新しいバージョンとそれ以前のバージョンの間で変更されたものもあります。それらの変更点は、破壊的変更と呼ばれ、一覧を[[破壊的変更の一覧]]にまとめています。また、一度策定された同一バージョンのAliceModelの間でその内容に差異が生じることはありえません。&lt;br /&gt;
=モデルと仕様=&lt;br /&gt;
AliceModelは、AliceScriptのインタプリタとAPIを定めただけにすぎず、そのインタプリタやAPIの詳細な仕様や実装方法について定めるものではありません。それらの仕様はAliceModelを実装する各実装(AliceScriptや[[AliceSister]]など)によって管理されています。&lt;br /&gt;
それぞれの実装は仕様通りに記述されたAliceScriptのコードを逐次的に読み取り、それに応じた動作を提供します。この点で、AliceModelはAliceScript言語の仕様といえます。&lt;br /&gt;
=Alice.Runtime=&lt;br /&gt;
AliceModelの各実装は、開発者にとってわかりやすい方法で、AliceModelに実装されるAPIを公開します。このとき、ある実装ではある機能が重視されていて、他のAliceModelの実装ではその機能が重視されていない状況もあります。AliceModelの実装は、その実装間で互換性のない機能を含むことができます。それらをまとめてAlice.Runtime.Extとよぶことにします。ただし、これらの実装間の差異はできる限り埋められるべきで、それがあったとしてもその実装のその機能の部分をAliceModel準拠と称することはできません。これは、同一バージョンのAliceModel実装間で同一のコードを実行できるようにするというAliceModelの策定意図を体現するためです。&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=AliceSister&amp;diff=1261</id>
		<title>AliceSister</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=AliceSister&amp;diff=1261"/>
		<updated>2023-06-29T01:29:22Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/general/alice-sister/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
[[Category:基本]]&lt;br /&gt;
AliceSisterは、.NETFramework上で動作するWindows向けの[[AliceModel]]の実装です。AliceSisterは、[[AliceModel]]を対象とするアプリケーションを管理する実行環境と、プログラマがアプリ開発のあらゆる場面で簡単に使用できるAlice.Runtime、Windows固有の機能を実装するAlice.Windowsから構成されています。&lt;br /&gt;
&lt;br /&gt;
AliceSisterはアプリケーションに次の機能を提供します。&lt;br /&gt;
*&amp;lt;b&amp;gt;実装の互換性&amp;lt;/b&amp;gt; 一部の稀なケースを除き、特定のバージョンの[[AliceModel]]をターゲットに開発されたアプリケーションは、同じバージョンのAliceSisterで問題なく実行できます。&lt;br /&gt;
*&amp;lt;b&amp;gt;異なるバージョンの共存&amp;lt;/b&amp;gt; [[AliceModel]]は、同じコンピュータに複数の異なるバージョンや実装が共存でき、バージョン間の競合の解決に役立ちます。これは、複数の異なるバージョンのアプリがコンピュータ内で共存して実行できることも意味します。&lt;br /&gt;
*&amp;lt;b&amp;gt;広範囲にわたるライブラリ&amp;lt;/b&amp;gt; 一般的によく使われる操作のセットを含むAlice.Runtimeを使用することで、簡単に複雑な操作を含むアプリケーションを開発できます。&lt;br /&gt;
&lt;br /&gt;
{{Alert|&lt;br /&gt;
AliceSisterは、AliceScriptの開発に追従して、[[AliceModel]]の実装に加え、できるだけAliceScriptと同じ機能が提供されます。&lt;br /&gt;
&amp;lt;br/&amp;gt;現在のところAliceSisterは引き続き開発され、それが終了する予定はありません。すでに開発されているAliceSister専用アプリは移行する必要はありませんが、新規開発においてはできるだけ[[AliceModel]]の各実装に依存しないコードを使うとともに、ターゲットの限定が必要な場合はAliceScriptをご使用されることをお勧めします。|注意|4&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=ユーザーにとってのAliceSister=&lt;br /&gt;
AliceScriptアプリを開発しなくても、それを使用するユーザーはAliceSisterやその操作に関する知識を持つ必要はありません。ほとんどの場合、AliceSisterはユーザーにとっては完全に透過的に機能します。&lt;br /&gt;
&lt;br /&gt;
ユーザーの皆さんがこのページに辿り着いたほとんどの理由は、コンピュータにAliceSisterのインストールが必要などと言われているからでしょう。このセクションでは、AliceSisterを導入して、AliceSisterが必要なアプリケーションを動作させる方法を解説します。&lt;br /&gt;
==.NETFrameworkの導入==&lt;br /&gt;
まず、あなたのコンピュータでAliceSisterを導入する前に、コンピュータに.NETFramework4.5.2以降がインストールされている必要があります。これは、Windows10以降でデフォルト、Windowws7以降でWindowsUpdateを介して導入されているようですが、もしインストールされていない場合は手動でインストールする必要があるかもしれません。.NETFrameworkの導入に関する質問は、WSOFTで対応することができません。次のMicrosoftのガイドを参照してください。&lt;br /&gt;
*.NETFramework インストールガイド [https://docs.microsoft.com/ja-jp/dotnet/framework/install/]&lt;br /&gt;
*インストールされている .NET Framework バージョンを確認する [https://docs.microsoft.com/ja-jp/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed]&lt;br /&gt;
=AliceSisterの詳細=&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=WSOFTScript%E3%81%8B%E3%82%89%E3%81%AE%E7%A7%BB%E8%A1%8C&amp;diff=1260</id>
		<title>WSOFTScriptからの移行</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=WSOFTScript%E3%81%8B%E3%82%89%E3%81%AE%E7%A7%BB%E8%A1%8C&amp;diff=1260"/>
		<updated>2023-06-29T01:28:10Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/tutorial/migration-from-wsoftscript/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
[[Category:チュートリアル]]&lt;br /&gt;
AliceScriptによる開発と従来のWSOFTScriptによる開発の類似点と相違点について説明します。&lt;br /&gt;
{{Alert|WSOFTScriptバージョン2020LTS及び0.07R4以降、新たなバージョンのWSOFTScriptの開発は行われません。WSOFTは、2022年6月18日に、全てのWSOFTScriptおよびWSOFTScript.XならびにWSOFTScript.Pocketの各バージョンのサポートを終了します。||4|1em}}&lt;br /&gt;
今後のWSOFTScriptのサポートについては[https://wsoft.gq/script/?id=WSOFTScriptのライフサイクル WSOFTScriptのライフサイクル]を参照してください。&lt;br /&gt;
&lt;br /&gt;
この記事では、AliceScriptによる開発に関心があるWSOFTScript開発者を対象に、WSOFTScriptとAliceScriptの開発の違いを解説しています。&lt;br /&gt;
WSOFTScriptについて詳しく知るには[https://wsoft.gq/script/ WSOFTScriptのサイト]を参照してください。&lt;br /&gt;
=はじめに=&lt;br /&gt;
AliceScriptが登場するまで、簡易的なコンソールアプリケーションとShangri-laによるデスクトップアプリケーションの開発は、WSOFTScriptを用いて行われて来ました。まず第一に、WSOFTScriptのメインライブラリは複雑で、サイズも大きなものでした。また、組み込みの例外処理やデバッグ支援機能はまだ未成熟で、信頼性の高いアプリケーションを開発するには脆弱でもありました。&lt;br /&gt;
&lt;br /&gt;
AliceScriptが登場し、従来のWSOFTScriptはAliceScriptへと進化しました。AliceScriptのさまざまな改良により、ライブラリは小さくまとまり、組み込みの例外処理やデバッグ支援機能も実装され、信頼性の高いアプリケーションを開発することができるようになりました。しかしその一方で、WSOFTScriptに実装されていた一部の機能は実装されていなかったり、多くの組み込み機能を使用するためにAlice.Runtime.dllが必要になるなど、設計思想に起因するいくつかの根本的な違いも残っています。&lt;br /&gt;
&lt;br /&gt;
この記事では、まず最初にAliceScriptで開発を始めるために必要な作業を確認します。(すでにAliceScriptを使用している場合はこのセクションを飛ばしても構いません)。次に、AliceScriptを使って簡単なコンソールアプリケーションを例として作成し、WSOFTScriptとAliceScriptの機能の類似点や相違点を実際に見てみます。&lt;br /&gt;
=AliceScriptを使用するための準備=&lt;br /&gt;
AliceScriptを使用したアプリケーションの開発についての説明の前に、まず、AliceScriptを実行できるコンピュータを用意する必要があります。.NETCore3.1がインストールされているコンピュータが必要です。そのようなコンピュータを用意できない場合は、WSOFTScriptと同じ要件で操作する[[AliceSister]]を使用する必要があります。AliceSisterはAliceScriptとほぼ同じ動作をするAliceScriptの別の実装です。&lt;br /&gt;
&lt;br /&gt;
自分のコンピュータでAliceScriptを実行する場合は、次のソフトウェアをインストールする必要があります。&lt;br /&gt;
*.NETCore v3.1以上&lt;br /&gt;
*AliceScript&lt;br /&gt;
&lt;br /&gt;
.NETCoreのインストールについては、Microsoftの公式ガイドを参照してください。&lt;br /&gt;
*Windowsに.NETをインストールする[[https://docs.microsoft.com/ja-jp/dotnet/core/install/windows?tabs=net50|Windowsに.NETをインストールする]]&lt;br /&gt;
&lt;br /&gt;
.NETCoreに加えて、AliceScriptもコンピュータにインストールする必要があります。するには、[[AliceScriptのダウンロード]]を参照してください。&lt;br /&gt;
=初めてのAliceScriptアプリケーションの作成=&lt;br /&gt;
AliceScriptアプリケーションは、WSOFTScriptアプリケーションと同じように、任意のテキストエディタで作成できます。&lt;br /&gt;
&lt;br /&gt;
それでは早速、簡単なコンソールアプリケーションをAliceScriptで作成して、AliceScriptアプリケーションの作成方法のWSOFTScriptとの違いについて実際に見てみましょう。任意のテキストエディタで次のコードを入力してください。&lt;br /&gt;
 print(“Hello,World!”);&lt;br /&gt;
ファイルを保存したら、次のコマンドを入力して実行します。&lt;br /&gt;
 alice -r {ファイル名}&lt;br /&gt;
Hello,World!と表示されれば成功です。&lt;br /&gt;
&lt;br /&gt;
ここまでの作業を通じて、AliceScriptとWSOFTScriptとの大きな違いは見当たりません。これは、[[Print]]関数がWSOFTScriptと同じようにAliceScriptに組み込まれているからです。しかし、ファイル操作や正規表現など、WSOFTScriptには組みこまれていたがAliceScriptには組み込まれていない関数を使用する場合に注意が必要です。&lt;br /&gt;
&lt;br /&gt;
AliceScriptのライブラリには、AliceScript.dllに加えて、Alice.Runitime.dllがあります。これは、AliceScript.dllと同じディレクトリに配置されているときにデフォルトで読み込まれる、AliceScriptのライブラリ群です。ここに、ファイル操作などのよく使う関数やクラスが実装されています。Alice.Runtimeに実装されている関数のうち、名前空間が[[Alice(名前空間)]]でないものは関数の使用前に次のようなコードが必要です。&lt;br /&gt;
 import “{読み込みたい名前空間の名前}”;&lt;br /&gt;
次の例では、まずWSOFTScriptを使用してHello,Worldをテキストファイルに書き込みます。&lt;br /&gt;
 file_write_text(“test.txt”,”Hello,World”);&lt;br /&gt;
このコードと同じ動作をするAliceScriptのコードは以下の通りです。&lt;br /&gt;
 import “Alice.IO”;&lt;br /&gt;
 file_write_text(“test.txt”,”Hello,World”);&lt;br /&gt;
注目すべき唯一の違いは、関数の呼出前に[[Import]]関数が呼び出されていることです。&amp;lt;code&amp;gt;import&amp;lt;/code&amp;gt;は、&amp;lt;code&amp;gt;Alice.IO&amp;lt;/code&amp;gt;名前空間からファイルやディレクトリの入出力についての関数群を読み込むことを事前に宣言します。これが、WSOFTScriptでも関数表現&amp;lt;code&amp;gt;import(“WSOFTScript.Shangrila”);&amp;lt;/code&amp;gt;や、フラグ表現&amp;lt;code&amp;gt;[Import:”WSOFTScript.Shangrila”]&amp;lt;/code&amp;gt;と決定的に異なる点は、&amp;lt;code&amp;gt;import&amp;lt;/code&amp;gt;がファイルを読み込むのではなく、すでに読み込まれたライブラリから名前空間を使用可能なように読み込む点です。&lt;br /&gt;
&lt;br /&gt;
=関数とフラグ=&lt;br /&gt;
ところで、AliceScriptにはWSOFTScriptに実装されているようなフラグ機能はありません。インタプリタに事前に報告すべき情報がある場合は、&amp;lt;code&amp;gt;Alice.Interpreter&amp;lt;/code&amp;gt;名前空間にある関数を呼び出して代用します。例えば、次のフラグの機能を、AliceScriptで表現することを考えます。&lt;br /&gt;
 [DllImport:”Library.dll”]&lt;br /&gt;
このフラグは、AliceScriptで特定の.NETライブラリを読み込むフラグです。これをAliceScriptで表現するには次のコードに置き換えます。&lt;br /&gt;
 Dllimport(“Library.dll”);&lt;br /&gt;
また、標準出力から発生する出力を抑制したいとき、WSOFTScriptではCanPrintフラグを使用していました。これと同じように動作するコードをAliceScriptで表現すると、次のようになります。&lt;br /&gt;
 import “Alice.Interpreter”;&lt;br /&gt;
 Interpreter_AllowOutput(false);&lt;br /&gt;
さらに、AliceScriptの関数には、オーバーライドという概念が導入されています。この概念によって原則同じ関数を複数回定義することはできません。同じ関数を複数回定義されることが予想される場合は事前に&amp;lt;code&amp;gt;virtual&amp;lt;/code&amp;gt;属性を付与することを検討してください。また、属性の付与された関数を上書きする場合には、&amp;lt;code&amp;gt;override&amp;lt;/code&amp;gt;属性を付与します。次に例を示します。&lt;br /&gt;
 function virtual Func()&lt;br /&gt;
 {&lt;br /&gt;
   print(“Hello”);&lt;br /&gt;
 }&lt;br /&gt;
 Func();//出力:Hello&lt;br /&gt;
 function override Func()&lt;br /&gt;
 {&lt;br /&gt;
   print(“World”);&lt;br /&gt;
 }&lt;br /&gt;
 Func();//出力:World&lt;br /&gt;
また、AliceScriptの関数は可変長個の引数を受け取ることができる、&amp;lt;code&amp;gt;parms&amp;lt;/code&amp;gt;パラメータをサポートしています。これは、その関数に幾つでも引数を渡すことが可能であることを表しています。次に例を示します。&lt;br /&gt;
 function Func(parms args)&lt;br /&gt;
 {&lt;br /&gt;
   print(args);&lt;br /&gt;
 }&lt;br /&gt;
 Func(“A”,”B”,”C”);//出力:[“A”,”B”,”C”]&lt;br /&gt;
この時、&amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt;は自動的に配列型になります。引数は省略することもできます。&lt;br /&gt;
関数について詳しくは、[[関数]]も参照してください。&lt;br /&gt;
=変数=&lt;br /&gt;
変数に関する重要な変更についても注意が必要です。まず、WSOFTScriptとは違い、AliceScriptでは、未定義の変数を宣言するときに&amp;lt;code&amp;gt;var&amp;lt;/code&amp;gt;キーワードが必須になりました。また、一度宣言された変数に&amp;lt;code&amp;gt;var&amp;lt;/code&amp;gt;キーワードを使うことはできません。&lt;br /&gt;
&lt;br /&gt;
スコープは、その変数が有効な範囲です。WSOFTScriptでは、すべての変数はグローバル変数として定義されていました。AliceScriptでは、通常の変数(これをローカル変数と呼ぶことにします)は、そのスコープとそれ以下のスコープの範囲に限られます。AliceScriptでグローバル変数を宣言するには、&amp;lt;code&amp;gt;var&amp;lt;/code&amp;gt;キーワードの後に&amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt;修飾子をつけます。次に例を示します。&lt;br /&gt;
 var global abc = “ABC”;&lt;br /&gt;
定数は、AliceScriptで導入された新しい機能です。定数は、一度のみ宣言でき、一度定義するとそれに再度代入することはできません。宣言するには&amp;lt;code&amp;gt;var&amp;lt;/code&amp;gt;キーワードの代わりに&amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt;キーワードを使用します。定数にもやはりローカル定数とグローバル定数が存在します。次の例では、ローカル定数&amp;lt;code&amp;gt;lconst&amp;lt;/code&amp;gt;と&amp;lt;code&amp;gt;gconst&amp;lt;/code&amp;gt;をそれぞれ定義します。&lt;br /&gt;
 const lconst a = 1;&lt;br /&gt;
 const global gconst b = 2;&lt;br /&gt;
変数について詳しく知るには、[[変数]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
=繰り返し構造の違い=&lt;br /&gt;
AliceScriptでは、WSOFTScriptとは異なり完全な&amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;文と&amp;lt;code&amp;gt;foreach&amp;lt;/code&amp;gt;文の分離が図られました。AliceScriptでは配列から一つ一つ取り出して実行するために&amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;文を使用することはできません。また、&amp;lt;code&amp;gt;foreach(item as array)&amp;lt;/code&amp;gt;や、&amp;lt;code&amp;gt;foreach(item : array)&amp;lt;/code&amp;gt;の形は使用できなくなりました。&amp;lt;code&amp;gt;foreach(item in array)&amp;lt;/code&amp;gt;を使用することを検討してください。また、&amp;lt;code&amp;gt;array.Foreach(delegate(item));&amp;lt;/code&amp;gt;の形も使用できます。次の例を参照してください。&lt;br /&gt;
 var ary = [“a”,”b”,”c”];&lt;br /&gt;
 ary.Foreach((item)=&amp;gt;&lt;br /&gt;
  {&lt;br /&gt;
     print(item);&lt;br /&gt;
  });&lt;br /&gt;
  //出力:a&lt;br /&gt;
  //    b&lt;br /&gt;
  //    c&lt;br /&gt;
また、AliceScriptでは終了条件までループする&amp;lt;code&amp;gt;until&amp;lt;/code&amp;gt;文は廃止されました。しかし、&amp;lt;code&amp;gt;while(!bool)&amp;lt;/code&amp;gt;で代用することができます。&lt;br /&gt;
&lt;br /&gt;
=型の違い=&lt;br /&gt;
AliceScriptではWSOFTScriptからいくつかの型が追加または変更されました。次にそれらの型を示します。&lt;br /&gt;
==Bool型==&lt;br /&gt;
WSOFTScriptでは&amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt;文や&amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt;文のように条件をとるステートメントには、&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;型の0を偽とし、非0を真としていました。&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;や&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;キーワードはそれぞれ1や0を返していました。&lt;br /&gt;
AliceScriptでは、真または偽のいずれかを表現することのできる&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型が導入され、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型を厳格に求めるような場面が頻繁にあります。これは、比較式が必要な場面で代入式も使用できてしまい、混乱を招く恐れがあったためです。&lt;br /&gt;
AliceScriptでは、&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;や&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;キーワードはそれぞれ&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型の&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;や&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;を返します。次に例を示します。&lt;br /&gt;
 var condition = (1 == 1);&lt;br /&gt;
 print(condition.type);//出力例:BOOLEAN&lt;br /&gt;
==Type型==&lt;br /&gt;
AliceScriptには変数の型を表現する&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型が存在します。全ての変数は&amp;lt;code&amp;gt;Type&amp;lt;/code&amp;gt;プロパティを実装していて、その変数の型を表す値を取得することができます。これはWSOFTScriptの&amp;lt;code&amp;gt;Type&amp;lt;/code&amp;gt;プロパティに似ています。しかし、WSOFTScriptの&amp;lt;code&amp;gt;Type&amp;lt;/code&amp;gt;プロパティは&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型ではなく&amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt;型でその値を表す文字列表現を返します。&amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;キーワードなどはそれぞれの型の値を表す定数です。また、[[式#型変換演算子|型変換演算子&amp;lt;code&amp;gt;as&amp;lt;/code&amp;gt;]]を使用することでその型に変数を明示的に変換することができます。次に例を示します。&lt;br /&gt;
 var num = 123;&lt;br /&gt;
 print(num.type);//出力例:NUMBER&lt;br /&gt;
 var str = (num as string);&lt;br /&gt;
 print(str.type);//出力例:STRING&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E7%A0%B4%E5%A3%8A%E7%9A%84%E5%A4%89%E6%9B%B4%E3%81%AE%E4%B8%80%E8%A6%A7&amp;diff=1259</id>
		<title>破壊的変更の一覧</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E7%A0%B4%E5%A3%8A%E7%9A%84%E5%A4%89%E6%9B%B4%E3%81%AE%E4%B8%80%E8%A6%A7&amp;diff=1259"/>
		<updated>2023-06-29T01:27:22Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/changelog/compatibility/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}} &lt;br /&gt;
&lt;br /&gt;
AliceScriptの歴史を通じて、AliceScriptのバージョン間および異なる実装間で高いレベルの互換性を維持することに力が注がれてきました。&lt;br /&gt;
多くの開発者は、AliceScriptの異なる実装間の互換性とともに、AliceScriptの特定の実装のバージョン間についても高いレベルの互換性を期待します。&lt;br /&gt;
特に、以前のバージョンのAliceScript用に書かれたコードは、AliceScriptの新しいバージョンでもシームレスに動作することを期待します。&lt;br /&gt;
実際、多くの開発者は、新しくリリースされたAlice.RuntimeにあるAPIが、それらのAPIが導入された初めのバージョンとも互換性があると期待します。&lt;br /&gt;
&lt;br /&gt;
この記事では、AliceScriptまたはAlice.RuntimeまたはAlicePackageに対して行われた変更の詳細と、それがアプリケーションの互換性に与える影響について説明します。変更は「承認」されているか「非承認」であるか、動作の予測や期待通りの動作の維持が不十分であると判断され、「見送り」されているかのいずれかです。&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; algin=“center”&lt;br /&gt;
|+style=&amp;quot;white-space:nowrap&amp;quot;|&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|変更のステータス&lt;br /&gt;
|承認状況&lt;br /&gt;
|影響する範囲&lt;br /&gt;
|変更が行われたバージョン&lt;br /&gt;
|}&lt;br /&gt;
==Typeプロパティ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; algin=“center”&lt;br /&gt;
|+style=&amp;quot;white-space:nowrap&amp;quot;|&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|変更のステータス&lt;br /&gt;
|承認&lt;br /&gt;
|AliceScript&lt;br /&gt;
|RC1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
AliceScriptRC1以前のバージョンでは、Typeプロパティはその値の型を表す文字列表現を返していました。AliceScriptRC2からはTypeプロパティは&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型を返すため、戻り値の型が変わります。&lt;br /&gt;
この変更による影響を緩和するために、&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型から&amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt;型への一方向の暗黙的な変換が用意されているため、この変更は承認されました。&lt;br /&gt;
==定義されていない変数への値の代入の禁止==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; algin=“center”&lt;br /&gt;
|+style=&amp;quot;white-space:nowrap&amp;quot;|&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|変更のステータス&lt;br /&gt;
|承認&lt;br /&gt;
|AliceScript&lt;br /&gt;
|RC1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
AliceScriptRC1以前のバージョンでは、定義されていない変数にも&amp;lt;code&amp;gt;var&amp;lt;/code&amp;gt;キーワードを使用しないで変数を定義することができました。これは未アクセスの変数に対して値が存在するか確認できないという潜在的な欠陥が存在しているため使用できなくなります。次は未定義の変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;に&amp;lt;code&amp;gt;12345&amp;lt;/code&amp;gt;を代入し定義するコードです。AliceScriptRC1以前では動作していましたが今は動作しません。&lt;br /&gt;
 a = 12345;&lt;br /&gt;
AliceScriptRC2以降でこれと同じ動作を行うことができる唯一の方法は次の通りです。&lt;br /&gt;
 var a = 12345;&lt;br /&gt;
変数を定義した後の代入に関する動作に変更はありません。この変更は承認されました。&lt;br /&gt;
==暗黙的な型変換の廃止==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; algin=“center”&lt;br /&gt;
|+style=&amp;quot;white-space:nowrap&amp;quot;|&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|変更のステータス&lt;br /&gt;
|承認&lt;br /&gt;
|AliceScript&lt;br /&gt;
|RC1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
AliceScriptRC1以前のバージョンでは、関数などの対応する型が与えられた型ではない場合、自動的にその値を対応する型に変換します。これを暗黙的な型変換とよびますが、これは本来の用途に使用できない値などが与えられても例外が発生することなく予期しない動作をしてしまう可能性がありました。これを解消するために暗黙的な型変換は廃止されました。この変更は承認されました。&lt;br /&gt;
&lt;br /&gt;
また、もう一つの解決策として、[[関数#引数|引数の型指定]]を行うことも検討してください。&lt;br /&gt;
=変数/関数のスコープ= &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; algin=“center”&lt;br /&gt;
|+style=&amp;quot;white-space:nowrap&amp;quot;|&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|変更のステータス&lt;br /&gt;
|承認&lt;br /&gt;
|AliceScript&lt;br /&gt;
|GM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
AliceScriptGM以前のバージョンでは、変数と関数、定数はすべてグローバルとして定義されていました。これは複数回同じファイルを実行する際に重複定義が発生してしまうおそれがあるなどの潜在的な欠陥を有していました。AliceScriptGMでは、スコープが導入され、そのスコープの範囲内で宣言された変数と関数、定数はいずれもその範囲外では使用できなくなりました。これはネストされたスコープに対しても有効です。この変更は承認されました。&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E6%96%B0%E6%A9%9F%E8%83%BD%E3%81%AE%E4%B8%80%E8%A6%A7&amp;diff=1258</id>
		<title>新機能の一覧</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E6%96%B0%E6%A9%9F%E8%83%BD%E3%81%AE%E4%B8%80%E8%A6%A7&amp;diff=1258"/>
		<updated>2023-06-29T01:26:46Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/changelog/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}} &lt;br /&gt;
&lt;br /&gt;
AliceScriptは、セキュリティと信頼性に関するバグを修正することを目的にして、従来のバージョンのAliceScriptにも更新が提供されることもありますが、それは絶対ではありません。すでにお使いの従来のバージョンのAliceScriptを用いて開発されたアプリケーションを移行する必要はありませんが、新規に開発するアプリケーションについては最新バージョンのAliceScriptを使用することを推奨します。&lt;br /&gt;
&lt;br /&gt;
この記事では、AliceScriptの各バージョンにおける新機能と機能強化について説明します。この記事は、それぞれの新機能の情報を詳しく説明するものではありません。AliceScriptの各機能についてはそれぞれの記事をご覧ください。ダウンロードとインストール手順について詳しくは[[AliceScriptのダウンロード]]を参照してください。&lt;br /&gt;
=AliceScript Golden Masterの新機能=&lt;br /&gt;
AliceScriptGMは、AliceScriptの初の安定リリースです。AliceScriptGMによって、AliceScriptに次の機能と機能強化が追加されています。&lt;br /&gt;
最新のAliceScriptADKは[[AliceScriptのダウンロード]]でダウンロードできます。&lt;br /&gt;
==一部の暗黙的な変換の廃止==&lt;br /&gt;
AliceScriptGMでは、プログラムミスを減らし、適切に例外を発生させる目的で&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型と&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;型、&amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt;型から&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;型への暗黙的な変換は廃止されました。&lt;br /&gt;
==未定義の変数への代入の禁止==&lt;br /&gt;
AliceScriptGMからは、&amp;lt;code&amp;gt;var&amp;lt;/code&amp;gt;キーワードを使用することでのみ、未定義の変数を定義できます。定義されていない変数にアクセスすることはできない上、同じスコープ内で複数回同じ名前の変数を&amp;lt;code&amp;gt;var&amp;lt;/code&amp;gt;キーワードを使って宣言することはできません。このサイトにある一部の記事はまだ古いままで、変数の定義に&amp;lt;code&amp;gt;var&amp;lt;/code&amp;gt;キーワードを使用していなかったり、型指定修飾子を使用している場合がありますが、これは最新のバージョンのAliceScriptでは正しく動作しません。&lt;br /&gt;
==関数・変数・定数のスコープ==&lt;br /&gt;
関数や変数、定数のスコープはAliceScriptGMにおける重要な変更の一つです。&lt;br /&gt;
AliceScriptGM以降のバージョンでは、関数や変数、定数はその有効な範囲内で、一意な名前である必要があります。この範囲をスコープと呼びます。スコープの範囲内では、同じ名前のオペランドを定義することはできませんし、反対にスコープの外に出ると、その範囲内で定義したオペランドは使用できません。 AliceScriptでいうところのスコープの範囲は、原則としてそのコードのブロック内です。コードのブロックは、およそそのコードの波括弧の中を指します。次の例を参照してください。&lt;br /&gt;
 function OutputTen()&lt;br /&gt;
  {&lt;br /&gt;
      var a = 10;&lt;br /&gt;
      print(a);&lt;br /&gt;
  }&lt;br /&gt;
 print(a);//例外発生&lt;br /&gt;
==整数リテラルの2進表記および16進表記のサポート==&lt;br /&gt;
AliceScriptGMからは、整数を2進数および16進数で記述できるようになります。整数を2進数で表現する場合は&amp;lt;code&amp;gt;0b&amp;lt;/code&amp;gt;プレフィックスを、16進数で表現する場合は&amp;lt;code&amp;gt;0x&amp;lt;/code&amp;gt;プレフィックスを使用します。次の例では、すべて10進数で256と等価な数を記述しています。&lt;br /&gt;
 var decimalNum = 256;&lt;br /&gt;
 var hexNum = 0x100;&lt;br /&gt;
 var binaryNum = 0b100000000;&lt;br /&gt;
 &lt;br /&gt;
 print(decimalNum==hexNum==binaryNum);//出力:True&lt;br /&gt;
==逐語的文字列リテラル==&lt;br /&gt;
シングルクォーテーション&amp;lt;code&amp;gt;’&amp;lt;/code&amp;gt;で囲われた文字列は、逐語的文字列リテラルとして認識します。&lt;br /&gt;
逐語的文字列リテラルは、&amp;lt;code&amp;gt;\’&amp;lt;/code&amp;gt;などの限定的なものを除き、ほとんどの文字がそのままの意味で解釈されます。&lt;br /&gt;
次の例ではどちらも”Hello,World“を表す文字列リテラルです。&lt;br /&gt;
 ‘“Hello,World”’;&lt;br /&gt;
 “\”Hello,World”\”&lt;br /&gt;
&lt;br /&gt;
=AliceScriptRC2の新機能=&lt;br /&gt;
AliceScriptRC2は、RC1に続くAliceScriptの次のテストリリースです。AliceScriptRC2によって、AliceScriptに次の機能と機能強化が追加されています。&lt;br /&gt;
最新のAliceScriptADKは[[AliceScriptのダウンロード]]でダウンロードできます。&lt;br /&gt;
==parmsパラメータ==&lt;br /&gt;
AliceScriptRC2では、&amp;lt;code&amp;gt;parms&amp;lt;/code&amp;gt;パラメータが導入されています。引数に&amp;lt;code&amp;gt;params&amp;lt;/code&amp;gt;キーワードを使用すると、可変長個の引数を受け取る引数を指定できます。&amp;lt;code&amp;gt;params&amp;lt;/code&amp;gt;の型は常にARRAYとなります。&lt;br /&gt;
一つの関数内では、&amp;lt;code&amp;gt;params&amp;lt;/code&amp;gt;キーワードより後に引数を指定することができません。次に例を示します。&lt;br /&gt;
&lt;br /&gt;
 function PrintAllArgs(params args)&lt;br /&gt;
  {&lt;br /&gt;
    foreach(arg in args)&lt;br /&gt;
    {&lt;br /&gt;
      print(arg);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
 PrintAllArgs(&amp;quot;Hello&amp;quot;,&amp;quot;World&amp;quot;);&lt;br /&gt;
 //出力:[&amp;quot;Hello&amp;quot;,&amp;quot;World&amp;quot;]&lt;br /&gt;
==引数の型指定==&lt;br /&gt;
引数の型指定では、ユーザ定義関数の引数に型を指定することができるようになりました。引数に&amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt;などの型指定修飾子を指定すると、その型のみを引数として受け入れることができるようになり、予期しない型による呼び出しを防ぐことができます。次に例を示します。&lt;br /&gt;
 function Add(number a,number b)&lt;br /&gt;
 {&lt;br /&gt;
    return a+b;&lt;br /&gt;
 }&lt;br /&gt;
 Add(1,2);//戻り値:3&lt;br /&gt;
 Add(&amp;quot;1&amp;quot;,&amp;quot;2&amp;quot;);//例外発生&lt;br /&gt;
==デリゲートの簡易呼び出し==&lt;br /&gt;
デリゲートの簡易呼び出しは、デリゲート型が変数に登録されている場合に&amp;lt;code&amp;gt;Invoke&amp;lt;/code&amp;gt;メソッドを呼び出さずに&amp;lt;code&amp;gt;変数名(引数);&amp;lt;/code&amp;gt;の形で呼び出しできるようにします。次に例を示します。&lt;br /&gt;
 var SayHello = delegate()&lt;br /&gt;
  {&lt;br /&gt;
    print(&amp;quot;Hello,World&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
 SayHello();//出力例:Hello,World&lt;br /&gt;
 SayHello.Invoke();//出力例:Hello,World&lt;br /&gt;
&lt;br /&gt;
==ユーザ定義定数==&lt;br /&gt;
ユーザ定義定数では、&amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt;キーワードを使ってその値が一度のみ定義され変更することができない定数を宣言することができます。次に例を示します。&lt;br /&gt;
 const Message=&amp;quot;Hello,World&amp;quot;;&lt;br /&gt;
 print(Message);//出力例:Hello,World&lt;br /&gt;
 Message=&amp;quot;Bonjur&amp;quot;;//例外発生&lt;br /&gt;
==デバッグ出力==&lt;br /&gt;
デバッグ出力によって、コードのデバッグのための新しい出力が提供されます。今まで、デバッグのために&amp;lt;code&amp;gt;print&amp;lt;/code&amp;gt;を用いて出力していたものを&amp;lt;code&amp;gt;debug_print&amp;lt;/code&amp;gt;で&lt;br /&gt;
代用することができます。これらの関数は&amp;lt;code&amp;gt;Alice.Interpreter&amp;lt;/code&amp;gt;名前空間にあります。例えば、次の例では、デバッグ用の出力と標準出力に別な内容が出力されます。&lt;br /&gt;
 import &amp;quot;Alice.Interpreter&amp;quot;;&lt;br /&gt;
 print(&amp;quot;Hello,Standard&amp;quot;);&lt;br /&gt;
 debug_print(&amp;quot;Hello,Debug&amp;quot;);&lt;br /&gt;
 //標準出力:Hello,Standard&lt;br /&gt;
 //デバッグ出力:Hello,Debug&lt;br /&gt;
==例外のエラーコード==&lt;br /&gt;
例外のエラーコードによって、発生した例外に対して一貫してより高度な情報を得ることができるようになります。完全な日本語でのエラー出力によって発生した例外がプログラマだけでなくユーザにも親しみやすくなります。&lt;br /&gt;
例外のエラーコード、メッセージ、発生条件などについて詳しく知るには[[例外]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
==Type型/型比較演算子==&lt;br /&gt;
&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型によって、変数の型に対する新たなアプローチが提供されます。全ての変数は&amp;lt;code&amp;gt;Type&amp;lt;/code&amp;gt;プロパティを実装していて、その変数の型を表す値を取得することができます。&amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;キーワードなどはそれぞれの型の値を表す定数です。また、[[式#型一致演算子|型一致演算子&amp;lt;code&amp;gt;is&amp;lt;/code&amp;gt;]]を使用することでその型に変数が指定された型かどうかを判断できます。次に例を示します。&lt;br /&gt;
 var num = 123;&lt;br /&gt;
 print(num.type);//出力例:NUMBER&lt;br /&gt;
 var condition = (num is number);&lt;br /&gt;
 print(condition);//出力例:True&lt;br /&gt;
==暗黙的な変換の廃止/型変換演算子==&lt;br /&gt;
まず、従来のAliceScriptに搭載されていた暗黙的な型変換は廃止されました。String型への変換を除くすべての型を変換するには、型変換演算子またはConvert関数が必要です。[[式#型変換演算子|型変換演算子&amp;lt;code&amp;gt;as&amp;lt;/code&amp;gt;]]を使用することでその型に変数を明示的に変換することができます。次に例を示します。&lt;br /&gt;
 var num = 123;&lt;br /&gt;
 print(num.type);//出力例:NUMBER&lt;br /&gt;
 var str = (num as string);&lt;br /&gt;
 print(str.type);//出力例:STRING&lt;br /&gt;
==Activate関数/Convert関数==&lt;br /&gt;
&amp;lt;code&amp;gt;type.activate&amp;lt;/code&amp;gt;関数は、その変数の表す型の変数を新規に作成し返します。&amp;lt;code&amp;gt;variable.convert(type)&amp;lt;/code&amp;gt;関数はその変数を指定された型に変換します。次に例を示します。&lt;br /&gt;
 var num = number.Activate();&lt;br /&gt;
 print(num.type);//出力例:NUMBER&lt;br /&gt;
 var str = num.Convert(string);&lt;br /&gt;
 print(str.Type);//出力例:STRING&lt;br /&gt;
==Null合体演算子==&lt;br /&gt;
Null合体演算子は、その変数が&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;でない場合、その変数がそのまま返されます。それ以外の場合は、右側のオペランドが評価され、その結果が返されます。&lt;br /&gt;
また、その変数が&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;である場合にのみ、右側のオペランドの値を左側の変数に割り当てるNull合体割当演算子&amp;lt;code&amp;gt;??=&amp;lt;/code&amp;gt;も使用できます。次に例を示します。&lt;br /&gt;
 var a = null;&lt;br /&gt;
 a ??= 5;&lt;br /&gt;
 print(a);//出力例:5&lt;br /&gt;
 a ??= 3;&lt;br /&gt;
 print(a);//出力例:5&lt;br /&gt;
==AlicePackage==&lt;br /&gt;
AlicePackageによって、スクリプトファイルやリソース、ライブラリを一つにまとめて公開することが可能になりました。詳細については[[AlicePackage]]を参照してください。&lt;br /&gt;
==パフォーマンス==&lt;br /&gt;
WSOFTScriptとのデバッグ互換性維持のために残されていたWSOFTScriptデバッガは、AliceScriptRC2から実装されなくなりました。また、&amp;lt;code&amp;gt;&amp;amp;&amp;amp;&amp;lt;/code&amp;gt;と&amp;lt;code&amp;gt;||&amp;lt;/code&amp;gt;演算子について演算のショートカットが導入され、左辺の評価状況によって右辺を評価すべきか考慮し、不要である場合は評価されなくなりました。従来のような動作が必要な場合には代わりに&amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt;演算子や、&amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt;演算子を利用できます。&lt;br /&gt;
これらの改善により、一部のシナリオでパフォーマンスを向上させることができます。&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E4%BE%8B%E5%A4%96&amp;diff=1257</id>
		<title>例外</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E4%BE%8B%E5%A4%96&amp;diff=1257"/>
		<updated>2023-06-29T01:26:11Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/general/exception/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
AliceScriptの例外処理機能は、プログラムの実行時に発生する予期しない状況や例外的な状況を扱うのに役立ちます。&lt;br /&gt;
例外処理では、&amp;lt;code&amp;gt;try&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;catch&amp;lt;/code&amp;gt;および&amp;lt;code&amp;gt;finally&amp;lt;/code&amp;gt;を使用して、成功しない可能性があるアクションを試行し、適切な場合はエラーを処理して、後からリソースを解放します。例外の発生元は、共通言語ランタイム、AliceScriptの実装、ライブラリ、スクリプトなど様々です。例外は、&amp;lt;code&amp;gt;throw&amp;lt;/code&amp;gt;キーワードを使用して発生させます。&lt;br /&gt;
&lt;br /&gt;
コードが直接呼び出した関数ではなく、その関数によって呼び出された関数によって例外がスローされることもあります。例外がスローされた場合、AliceScript実装によってそのコード内の&amp;lt;code&amp;gt;catch&amp;lt;/code&amp;gt;ブロックが検索され、最初に見つかったそのブロックが実行されます。&amp;lt;code&amp;gt;catch&amp;lt;/code&amp;gt;ブロックが見つからなかった場合は、スクリプトが停止し、ユーザーにメッセージが表示されます。&lt;br /&gt;
&lt;br /&gt;
この記事では、AliceScriptに標準で組み込まれている例外の一覧を示します。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+組み込みの例外の一覧&lt;br /&gt;
|-&lt;br /&gt;
!&lt;br /&gt;
!英語名&lt;br /&gt;
!概要&lt;br /&gt;
|-&lt;br /&gt;
|0x000&lt;br /&gt;
|NONE&lt;br /&gt;
|デフォルトのエラーコードです。共通言語ランタイムなどで発生した例外が含まれます。&lt;br /&gt;
|-&lt;br /&gt;
|0x001&lt;br /&gt;
|COULDNT_FIND_FUNCTION&lt;br /&gt;
|指定された名前に一致する関数が見つかりません。&lt;br /&gt;
|-&lt;br /&gt;
|0x002&lt;br /&gt;
|COULDNT_FIND_ARRAY&lt;br /&gt;
|指定された配列が見つかりません。&lt;br /&gt;
|-&lt;br /&gt;
|0x004&lt;br /&gt;
|COULDNT_FIND_VARIABLE&lt;br /&gt;
|指定された名前に一致する変数が見つかりません。&lt;br /&gt;
|-&lt;br /&gt;
|0x024&lt;br /&gt;
|COULDNT_FIND_ITEM&lt;br /&gt;
|指定された要素が配列内に見つかりません。&lt;br /&gt;
|-&lt;br /&gt;
|0x027&lt;br /&gt;
|COULDNT_FIND_LABEL&lt;br /&gt;
|指定されたジャンプ先のラベルが見つかりません。&lt;br /&gt;
|-&lt;br /&gt;
|0x028&lt;br /&gt;
|COULDNT_FIND_LABEL_IN_FUNCION&lt;br /&gt;
|指定されたジャンプ先のラベルが現在の関数内で見つかりません。&lt;br /&gt;
|-&lt;br /&gt;
|0x02e&lt;br /&gt;
|COULDNT_FIND_OPERATOR&lt;br /&gt;
|認識されない演算子です。&lt;br /&gt;
|-&lt;br /&gt;
|0x004&lt;br /&gt;
|INVAILD_OPERATOR&lt;br /&gt;
|無効な演算子の形式です。&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9&amp;diff=1256</id>
		<title>関数リファレンス</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9&amp;diff=1256"/>
		<updated>2023-06-29T01:25:15Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|関数リファレンスはAPIブラウザに置き換わりました。この記事のより新しい版が[https://docs.wsoft.ws/products/alice/api/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Alice(名前空間)]][[Category:基本]]&lt;br /&gt;
AliceScript関数リファレンスへようこそ。このサイト内にはAliceScriptやAlice.Runtimeで標準で提供されている関数について解説する記事がたくさんあります。ここではそれらの記事の読み方を説明します。関数について詳しく知るには、[[関数]]の記事を参照してください。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+関数名&lt;br /&gt;
|-&lt;br /&gt;
|名前空間&lt;br /&gt;
|Alice&lt;br /&gt;
|-&lt;br /&gt;
|アセンブリ&lt;br /&gt;
|ローカル&lt;br /&gt;
|-&lt;br /&gt;
|サポート&lt;br /&gt;
|AliceScript1&lt;br /&gt;
|-&lt;br /&gt;
|属性&lt;br /&gt;
|言語構造&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
各記事のトップには、このような表が必ずあります。それぞれの項目の意味は次の通りです。&lt;br /&gt;
&lt;br /&gt;
'''名前空間'''   Import関数で呼び出すときに必要な一意な名前です。それぞれ関数の種類ごとに分けられています。&lt;br /&gt;
&lt;br /&gt;
'''アセンブリ''' ローカルと書いてある場合は常に使用でき、Alice.Runtimeなどほかの場合は別途読み込みが必要です。&lt;br /&gt;
&lt;br /&gt;
'''属性'''       関数の属性を表します。関数の属性については[[関数#属性]]に詳しい説明があります&lt;br /&gt;
&lt;br /&gt;
==説明==&lt;br /&gt;
&amp;lt;code&amp;gt;戻り値 関数名(引数の型 引数名,引数名=規定値,params 引数名);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====引数=====&lt;br /&gt;
&amp;lt;code&amp;gt;引数名&amp;lt;/code&amp;gt;  関数に必要な引数です。引数の型が表示されている場合、その型である必要があります。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;引数名=規定値&amp;lt;/code&amp;gt; 関数に任意で指定可能な引数です。指定しない場合、規定値が使用されます。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;params 引数名&amp;lt;/code&amp;gt; 任意の個数指定可能な引数を表します。&lt;br /&gt;
&lt;br /&gt;
=====戻り値=====&lt;br /&gt;
&amp;lt;code&amp;gt;戻り値&amp;lt;/code&amp;gt; 関数からの戻り値の型を表します。&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;と表示されている場合、その関数は様々な型を返す可能性があります。&lt;br /&gt;
また、&amp;lt;code&amp;gt;void&amp;lt;/code&amp;gt;と表示されている場合、その関数は値を返しません。&lt;br /&gt;
&lt;br /&gt;
==例==&lt;br /&gt;
この項目では、その関数の具体的な使用例を示します。使用例が一行の場合、次のように表示されます。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;print(&amp;quot;Hello,World&amp;quot;);//出力:Hello,World&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
使用例が複数行にわたる場合もあります。次に例を示します。&lt;br /&gt;
 var a = 5;&lt;br /&gt;
 var b = 5;&lt;br /&gt;
 var c = a + b;&lt;br /&gt;
 print(c);//出力:10&lt;br /&gt;
&lt;br /&gt;
実際に関数リファレンスを開いてみましょう。[[:Category:Alice(名前空間)|Alice(名前空間)]]を開いて、Alice以下に存在するクラスオブジェクト、名前空間、関数などを確認できます。&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E5%A4%89%E6%95%B0&amp;diff=1255</id>
		<title>変数</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E5%A4%89%E6%95%B0&amp;diff=1255"/>
		<updated>2023-06-29T01:24:12Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/general/variable/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
変数は、AliceScriptにおける主要な概念の一つです。変数は、任意の場所で宣言定義でき、その値を取り出したり代入することができます。&lt;br /&gt;
この記事では、多くの変数に共通する事項を説明した後、それぞれの型の特徴について説明します。&lt;br /&gt;
変数は、すべて基となる&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;から派生しています。これは、すべての変数に共通した操作セットを提供します。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの変数は、文字またはアンダースコアから始まり、任意の数の文字、数字、記号が続きます。[[キーワード|予約語]]を使用することはできません。次の例では、&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;という変数に&amp;lt;code&amp;gt;123&amp;lt;/code&amp;gt;を代入し定義します。その後で、その変数の値を[[Print]]関数を使って出力します。&lt;br /&gt;
 var a = 123;&lt;br /&gt;
 print(a);&lt;br /&gt;
通常、変数に代入されるのは常にその値です。つまり、ある変数に式の値を代入するとその値への参照が代入されます。&lt;br /&gt;
通常、変数を定義する際は次の形で宣言します。&lt;br /&gt;
 var (修飾子) 名前 = 値;&lt;br /&gt;
&lt;br /&gt;
=ローカル変数とスコープ=&lt;br /&gt;
変数はその有効な範囲内で、一意な名前である必要があります。この範囲をその変数のスコープと呼びます。スコープの範囲内では、同じ名前の変数を定義することはできませんし、反対にスコープの外に出ると、その範囲内で定義した変数は使用できません。&lt;br /&gt;
AliceScriptでいうところのスコープの範囲は、原則としてそのコードのブロック内です。コードのブロックは、およそそのコードの波括弧の中を指します。次の例を参照してください。&lt;br /&gt;
 function Func()&lt;br /&gt;
  {&lt;br /&gt;
      var a = 123;&lt;br /&gt;
  }&lt;br /&gt;
 Func();&lt;br /&gt;
 print(a);//例外発生&lt;br /&gt;
上記の例ではFuncを呼び出すことで、ローカル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が定義されていますがそのスコープの範囲外での呼び出しのため、関数外で変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;を使用することはできません。また、インクルードしたファイルに対してもスコープが適用されます。このため、異なるスクリプトファイル間でローカル変数を共有することはできません。&lt;br /&gt;
=グローバル変数=&lt;br /&gt;
ローカル変数と反対の性質を持つものとして、グローバル変数があります。これは、スコープ内外のどこでも定義でき、定義されたスコープ外でもその変数を使用できます。グローバル変数はスクリプトではなくインタプリタに直接登録されます。その変数をグローバル変数として宣言定義するには&amp;lt;code&amp;gt;global&amp;lt;/code&amp;gt;キーワードを使用します。&lt;br /&gt;
 function Func()&lt;br /&gt;
  {&lt;br /&gt;
     var global a = 123;&lt;br /&gt;
  }&lt;br /&gt;
 Func();&lt;br /&gt;
 print(a);//出力:123&lt;br /&gt;
上記の例ではFuncを呼び出すことで、グローバル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が定義されているため、Funcの呼び出し後には、そのインタプリタで実行されるすべてのコードでグローバル変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;が使用できます。&lt;br /&gt;
=定数=&lt;br /&gt;
定数は、変数とは異なり、一度宣言すると再度代入したり値を変更することができません。これは、プログラム上で変更されたくない値(トークンなど)を定義する際に役立ちます。定数にもスコープが存在し、ローカル定数とグローバル定数があります。定数を定義するには&amp;lt;code&amp;gt;var&amp;lt;/code&amp;gt;キーワードの代わりに&amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt;キーワードを使用します。&lt;br /&gt;
 const KEY = “ABCD”;&lt;br /&gt;
 print(KEY);//出力例:ABCD&lt;br /&gt;
 KEY = “EFGH”;//例外発生&lt;br /&gt;
&lt;br /&gt;
=型=&lt;br /&gt;
AliceScriptのすべての変数および定数は、値に評価されるすべての[[式]]と同じように、型を持ちます。インタプリタはコード内で実行されるすべての演算が型安全になるようにします。例えば&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;型の変数には、その値を加算したり減算したりする算術演算が許可されます。しかし、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型にはその種類の演算は許可されません。次に、特定の型の規定値を使用して変数を初期化する例を示します。&lt;br /&gt;
&lt;br /&gt;
 var v = type.Activate();&lt;br /&gt;
&lt;br /&gt;
型には次の種類があります。&lt;br /&gt;
==variable型==&lt;br /&gt;
&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型は、すべての変数の値を表します。&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型は等値演算子をサポートします。この型から文字列型にのみ暗黙的な変換をサポートします。&amp;lt;code&amp;gt;variable&amp;lt;/code&amp;gt;型のメソッドは次の通りです。&lt;br /&gt;
*[[variable型のメソッド#Dispose|variable.Dispose]]&lt;br /&gt;
*[[variable型のメソッド#Equals|variable.Equals]]&lt;br /&gt;
*[[variable型のメソッド#Clone|variable.Clone]]&lt;br /&gt;
*[[variable型のメソッド#DeepClone|variable.DeepClone]]&lt;br /&gt;
*[[variable型のメソッド#ToString|variable.ToString]]&lt;br /&gt;
*[[variable型のメソッド#Properties|variable.Properties]]&lt;br /&gt;
*[[variable型のメソッド#Type|variable.Type]]&lt;br /&gt;
*[[variable型のメソッド#Convert|variable.Convert]]&lt;br /&gt;
==number型==&lt;br /&gt;
数値型は実数を表します。数値型は算術、比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの数値型の表現できるおおよその範囲は、±5.0 × 10−324 - ±1.7 × 10308(-15~17桁)で、サイズは8バイトです。&lt;br /&gt;
&lt;br /&gt;
数値型の規定値はゼロ&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;です。また、数値型で非数、正方向の無限、負方向の無限を表す定数がそれぞれ、&amp;lt;code&amp;gt;NaN&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;PositiveInfinity&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;NegativeInfinity&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&lt;br /&gt;
数値型への暗黙的な変換は存在しません。型変換演算子を使用するか&amp;lt;code&amp;gt;Convert&amp;lt;/code&amp;gt;メソッドを使って、文字列型、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型、&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型からの明示的な変換がサポートされています。また、数値型専用のメソッドは存在しません。この型の型指定修飾子は&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの数値型では小数点以下の計算が予想通りにいかない場合があります。[[数値型の計算誤差]]の記事を参照してください。&lt;br /&gt;
&lt;br /&gt;
==bool型==&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型は、ブール値の論理数を表します。&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型は論理、比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型の有効な値は&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;か&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;のいずれかです。&lt;br /&gt;
それぞれの値を表す定数がそれぞれ、&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型への暗黙的な変換は存在しません。特に、WSOFTScriptとは違い数値型の代わりに値を使用することはできません。また、文字列型、数値型、&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型からの明示的変換がサポートされます。&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型専用のメソッドは存在しません。この型の型指定修飾子は&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;です。&lt;br /&gt;
==bytes型==&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型は、バイナリデータ配列を表します。&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型は比較、等値演算子をサポートしています。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型の規定値は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。この型の型指定修飾子は&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型への暗黙的な変換は存在しません。また、文字列型、数値型、&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型からの明示的変換がサポートされます。&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型専用のメソッドは存在しません。&lt;br /&gt;
==none型==&lt;br /&gt;
&amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;型の有効な値は唯一&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとります。また、&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;型は比較演算子のみをサポートします。&lt;br /&gt;
&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;の値を表す定数が&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;として定義されています。&lt;br /&gt;
&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;型への暗黙的な変換および明示的な変換はサポートされていません。&lt;br /&gt;
&lt;br /&gt;
==string型==&lt;br /&gt;
文字列型は、テキストを一連のUTF-16コード単位として表現します。文字列型は結合、比較、等値演算子をサポートしています。&lt;br /&gt;
文字列型の規定値は空の文字列&amp;lt;code&amp;gt;””&amp;lt;/code&amp;gt;です。また、この型の型指定修飾子は&amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
すべてのAliceScriptに組み込まれている型はすべて文字列型への暗黙的な変換をサポートしています。文字列型に限って、明示的な変換と明示的な変換は同じ動作になります。文字列型のメソッドは次のものがあります。&lt;br /&gt;
*[[string型のメソッド#Trim|string.Trim]]&lt;br /&gt;
*[[string型のメソッド#TrimStart|string.TrimStart]]&lt;br /&gt;
*[[string型のメソッド#TrimEnd|string.TrimEnd]]&lt;br /&gt;
*[[string型のメソッド#StratsWith|stirng.StartsWith]]&lt;br /&gt;
*[[string型のメソッド#EndsWith|string.EndsWith]] &lt;br /&gt;
*[[string型のメソッド#PadLeft|string.PadLeft]] &lt;br /&gt;
*[[string型のメソッド#PadRight|string.PadRight]] &lt;br /&gt;
*[[string型のメソッド#Normalize|string.Normalize]] &lt;br /&gt;
*[[string型のメソッド#CompareTo|string.CompareTo]] &lt;br /&gt;
*[[string型のメソッド#IsNormalized|string.IsNormalized]] &lt;br /&gt;
*[[string型のメソッド#IndexOf|string.IndexOf]]&lt;br /&gt;
*[[string型のメソッド#LastIndexOf|string.LastIndexOf]]&lt;br /&gt;
*[[string型のメソッド#Contains|string.Contains]]&lt;br /&gt;
*[[string型のメソッド#Replace|string.Replace]] &lt;br /&gt;
*[[string型のメソッド#Split|string.Split]] &lt;br /&gt;
*[[string型のメソッド#ToLower|string.ToLower]] &lt;br /&gt;
*[[string型のメソッド#ToUpper|string.ToUpper]] &lt;br /&gt;
*[[string型のメソッド#EmptyOrWhiteSpaces|string.EmptyOrWhiteSpaces]]&lt;br /&gt;
*[[string型のメソッド#Format|string.Format]]&lt;br /&gt;
*[[string型のメソッド#Length|string.Length]]&lt;br /&gt;
*[[string型のメソッド#Count|string.Count]]&lt;br /&gt;
&lt;br /&gt;
==array型==&lt;br /&gt;
配列型は、インデックスを使用してアクセスできる変数のリストを表します。配列型は、結合、比較、等値演算子をサポートしています。&lt;br /&gt;
配列型の規定値は空の配列&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。この型の型指定修飾子は&amp;lt;code&amp;gt;array&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
配列型は必ずしも要素を含む必要も、同一の型である必要もありません。配列型への暗黙的な変換はサポートされていません。&lt;br /&gt;
明示的な変換を行うとき、その値を唯一の要素とする配列型に変換されます。配列型のメソッドには次のものがあります。&lt;br /&gt;
*[[配列型のメソッド#Add|array.Add]]&lt;br /&gt;
*[[配列型のメソッド#AddRange|array.AddRange]]&lt;br /&gt;
*[[配列型のメソッド#Remove|array.Remove]]&lt;br /&gt;
*[[配列型のメソッド#RemoveAt|array.RemoveAt]]&lt;br /&gt;
*[[配列型のメソッド#Insert|array.Insert]]&lt;br /&gt;
*[[配列型のメソッド#RemoveRange|array.RemoveRange]]&lt;br /&gt;
*[[配列型のメソッド#IndexOf|array.IndexOf]]&lt;br /&gt;
*[[配列型のメソッド#Contains|array.Contains]]&lt;br /&gt;
*[[配列型のメソッド#Sort|array.Sort]]&lt;br /&gt;
*[[配列型のメソッド#Reverse|array.Reverse]]&lt;br /&gt;
*[[配列型のメソッド#First|array.First]]&lt;br /&gt;
*[[配列型のメソッド#Last|array.Last]]&lt;br /&gt;
*[[配列型のメソッド#Flatten|array.Flatten]]&lt;br /&gt;
*[[配列型のメソッド#Marge|array.Merge]]&lt;br /&gt;
*[[配列型のメソッド#Foreach|array.Foreach]]&lt;br /&gt;
*[[配列型のメソッド#Length|array.Length]]&lt;br /&gt;
*[[配列型のメソッド#Count|array.Count]]&lt;br /&gt;
&lt;br /&gt;
==delegate型==&lt;br /&gt;
デリゲート型は、匿名関数のように一連のステートメントのまとまりを表します。デリゲート型は結合、比較、等値演算子をサポートしています。&lt;br /&gt;
デリゲート型の規定値は空のステートメント&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt;です。この型は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;をとり得ます。デリゲート型への暗黙的な変換と明示的な変換の両方はサポートされていません。この型の型指定修飾子は&amp;lt;code&amp;gt;delegate&amp;lt;/code&amp;gt;です。&lt;br /&gt;
&lt;br /&gt;
デリゲート型は、配列のように複数の要素を持つことができます。しかし、デリゲート型にはデリゲート型以外の要素を含めることはできません。&lt;br /&gt;
デリゲートについての詳しい説明は[[デリゲート]]の記事を参照してください。デリゲート型のメソッドには次のものがあります。&lt;br /&gt;
*[[デリゲート#Invoke|delegate.Invoke]]&lt;br /&gt;
*[[デリゲート#BeginInvoke|delegate.BeginInvoke]]&lt;br /&gt;
*[[デリゲート#Length/Count|delegate.Length]]&lt;br /&gt;
*[[デリゲート#Length/Count|delegate.Count]]&lt;br /&gt;
&lt;br /&gt;
==type型==&lt;br /&gt;
&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型は、変数の型を表します。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型は比較、等値演算子をサポートしています。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型の規定値は、&amp;lt;code&amp;gt;type.None&amp;lt;/code&amp;gt;です。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型への暗黙的な変換はサポートされていませんが、文字列型からの明示的な変換はサポートされます。この型の型指定修飾子は&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;です。&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型のメソッドには次のものがあります。&lt;br /&gt;
*[[Type型のメソッド#Activate|type.Activate]]&lt;br /&gt;
[[Category:基本]]&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E5%BC%8F&amp;diff=1254</id>
		<title>式</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E5%BC%8F&amp;diff=1254"/>
		<updated>2023-06-29T01:23:21Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/general/expression/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
[[Category:基本]]&lt;br /&gt;
式は、AliceScriptにおけるもっとも重要かつ基本的な要素です。AliceScriptにおいて、ほとんどのものは式で記述されます。ここでは式を値があるものすべてと定義します。&lt;br /&gt;
&lt;br /&gt;
変数に定数を代入するもっとも単純な例を次に示します。&lt;br /&gt;
 a = 1;&lt;br /&gt;
以上の例は、変数&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;に&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;を代入します。&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;は、明らかに1という値です。言い換えると&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;は1という値を表す式なのです。&lt;br /&gt;
この代入の後、&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;の値は1であることが期待されます。そのため&amp;lt;code&amp;gt;b = a;&amp;lt;/code&amp;gt;と書いたときもまた&amp;lt;code&amp;gt;b = 1;&amp;lt;/code&amp;gt;と同じ動作をします。&lt;br /&gt;
&lt;br /&gt;
ここでの&amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;は代入演算子と呼ばれる演算子です。これは一つあるいは二つあるいは複数の値の操作に用いられます。&lt;br /&gt;
AliceScriptには多数の演算子が用意されています。これらの演算子の多くは標準でAliceScriptに組み込まれていて、変数や値を使用して基本的な操作を実行できます。演算子には次のものがあります。&lt;br /&gt;
==代入演算子==&lt;br /&gt;
代入演算子は、AliceScriptでおそらく最も頻繁に使用されるであろう演算子です。これは指定された変数に値を代入します。次の例を参照してください。　&lt;br /&gt;
 var a = 1;&lt;br /&gt;
この例は&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;という名前の変数に&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;を代入するということを意味しています。また、&amp;lt;code&amp;gt;var&amp;lt;/code&amp;gt;キーワードを使うと変数の宣言を、省略すると変数に代入します。さらに、複数の変数への代入を同時に行うこともできます。次に例を示します。&lt;br /&gt;
 var a = b = 1;&lt;br /&gt;
&lt;br /&gt;
==算術演算子==&lt;br /&gt;
次の演算子は、数値型の変数を使用して算術演算を実行します。&lt;br /&gt;
===インクリメント演算子===&lt;br /&gt;
単項インクリメント演算子&amp;lt;code&amp;gt;++&amp;lt;/code&amp;gt;は変数を一つずつインクリメントします。インクリメントとは、その値に1を加算することを指します。インクリメント演算子には後置インクリメント演算子&amp;lt;code&amp;gt;x++&amp;lt;/code&amp;gt;と前置インクリメント演算子&amp;lt;code&amp;gt;++x&amp;lt;/code&amp;gt;があります。&lt;br /&gt;
====後置インクリメント演算子====&lt;br /&gt;
次の例に示すように、&amp;lt;code&amp;gt;x++&amp;lt;/code&amp;gt;の結果は&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;のインクリメント前の値です。&lt;br /&gt;
 var x = 1;&lt;br /&gt;
 print(x);   //出力:1&lt;br /&gt;
 print(x++); //出力:1&lt;br /&gt;
 print(x++); //出力:2&lt;br /&gt;
====前置インクリメント演算子====&lt;br /&gt;
次の例に示すように、&amp;lt;code&amp;gt;++x&amp;lt;/code&amp;gt;の結果は&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;のインクリメント後の値です。&lt;br /&gt;
 var x = 1;&lt;br /&gt;
 print(x);   //出力:1&lt;br /&gt;
 print(++x); //出力:2&lt;br /&gt;
 print(++x); //出力:3&lt;br /&gt;
===デクリメント演算子===&lt;br /&gt;
単項デクリメント演算子&amp;lt;code&amp;gt;—-&amp;lt;/code&amp;gt;は変数を一つずつデクリメントします。デクリメントとは、その値から1を減算することを指します。デクリメント演算子には後置デクリメント演算子&amp;lt;code&amp;gt;x++&amp;lt;/code&amp;gt;と前置デクリメント演算子&amp;lt;code&amp;gt;++x&amp;lt;/code&amp;gt;があります。&lt;br /&gt;
====後置デクリメント演算子====&lt;br /&gt;
次の例に示すように、&amp;lt;code&amp;gt;x++&amp;lt;/code&amp;gt;の結果は&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;のデクリメント前の値です。&lt;br /&gt;
 var x = 3;&lt;br /&gt;
 print(x);   //出力:3&lt;br /&gt;
 print(x++); //出力:3&lt;br /&gt;
 print(x++); //出力:2&lt;br /&gt;
====前置デクリメント演算子====&lt;br /&gt;
次の例に示すように、&amp;lt;code&amp;gt;++x&amp;lt;/code&amp;gt;の結果は&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;のデクリメント後の値です。&lt;br /&gt;
 var x = 3;&lt;br /&gt;
 print(x);   //出力:3&lt;br /&gt;
 print(++x); //出力:2&lt;br /&gt;
 print(++x); //出力:1&lt;br /&gt;
&lt;br /&gt;
===単項プラス演算子と単項マイナス演算子===&lt;br /&gt;
単項プラス演算子&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;ではその値が返されます。単項マイナス演算子&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;ではその値の否定が返されます。&lt;br /&gt;
次の例を参照してください。&lt;br /&gt;
 print(+1);  //出力:1&lt;br /&gt;
 print(-1); //出力:-1&lt;br /&gt;
===加算演算子===&lt;br /&gt;
加算演算子&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;はその値の和を返します。&lt;br /&gt;
 print(1+1);//出力:2&lt;br /&gt;
===減算演算子===&lt;br /&gt;
減算演算子&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;はその値の差を返します。&lt;br /&gt;
 print(2-1);//出力:1&lt;br /&gt;
===乗算演算子===&lt;br /&gt;
乗算演算子&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;はその値の積を返します。&lt;br /&gt;
 print(2*4);//出力:8&lt;br /&gt;
===除算演算子===&lt;br /&gt;
除算演算子&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;はその値の商を返します。&lt;br /&gt;
 print(4/2);//出力:2&lt;br /&gt;
===べき乗演算子===&lt;br /&gt;
べき乗演算子&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt;は1つ目の値を2つ目の値乗した値を返します。&lt;br /&gt;
 print(2**2);//出力:4&lt;br /&gt;
&lt;br /&gt;
===複合代入===&lt;br /&gt;
二項演算子を&amp;lt;code&amp;gt;op&amp;lt;/code&amp;gt;と置いた場合、&lt;br /&gt;
 x op= y;&lt;br /&gt;
この式は次の式と同じです。&lt;br /&gt;
 x = x op y;&lt;br /&gt;
ただし、&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;が評価されるのは一度のみです。次の例を参照してください。&lt;br /&gt;
 var a = 1;&lt;br /&gt;
 a += 2;&lt;br /&gt;
 print(a);//出力:3&lt;br /&gt;
 &lt;br /&gt;
 a -= 1;&lt;br /&gt;
 print(a);//出力:2&lt;br /&gt;
==文字列連結==&lt;br /&gt;
一方または両方の値が文字列型の場合、&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;演算子によってその値の文字列表現が連結されます。次に例を示します。&lt;br /&gt;
 print(&amp;quot;Hello,&amp;quot;+&amp;quot;World.&amp;quot;);&lt;br /&gt;
 //出力:Hello,World.&lt;br /&gt;
&lt;br /&gt;
==配列の連結または追加==&lt;br /&gt;
左辺の変数が配列型の場合、右辺が配列型ならその配列が連結され、それ以外の型なら左辺の配列に右辺の項目が追加されます。次に例を示します。&lt;br /&gt;
 var arr = [“a”,”b”];&lt;br /&gt;
 print(arr);//出力:a,b&lt;br /&gt;
 arr += “c”;&lt;br /&gt;
 print(arr);//出力:a,b,c&lt;br /&gt;
==デリゲートの組み合わせ==&lt;br /&gt;
左辺と右辺の両方がデリゲート型の場合、左辺のデリゲートと右辺のデリゲートが結合された新しいデリゲートが返されます。次に例を示します。&lt;br /&gt;
 var del1 = ()=&amp;gt;{&lt;br /&gt;
   print(”Hello”);&lt;br /&gt;
 };&lt;br /&gt;
 var del2 = ()=&amp;gt;{&lt;br /&gt;
   print(“World”);&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 var del = del1 + del2;&lt;br /&gt;
 del.Invoke();&lt;br /&gt;
 //出力:Hello&lt;br /&gt;
 //    World&lt;br /&gt;
==ラムダ演算子==&lt;br /&gt;
ラムダ演算子&amp;lt;code&amp;gt;=&amp;gt;&amp;lt;/code&amp;gt;は、[[デリゲート#ラムダ式|ラムダ式]]の定義時に、左側の引数指定部と右側の式本体を分ける機能を持ち、それ以外の機能はありません。詳細については、[[デリゲート#ラムダ式|ラムダ式]]を参照してください。&lt;br /&gt;
==等値演算子==&lt;br /&gt;
等値演算子は左右の値が等しいかどうかを判断し、それに応じた値を返します。&lt;br /&gt;
===等値演算子===&lt;br /&gt;
等値演算子&amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt;または&amp;lt;code&amp;gt;===&amp;lt;/code&amp;gt;は左右の値が等しい場合は&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;を返し、それ以外の場合は&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;を返します。次に例を示します。&lt;br /&gt;
 print(1==1);//出力:true&lt;br /&gt;
===非等値演算子===&lt;br /&gt;
非等値演算子&amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt;または&amp;lt;code&amp;gt;!==&amp;lt;/code&amp;gt;は左右の値が異なる場合は&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;を返し、それ以外の場合は&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;を返します。この演算子は等値演算子の論理反転と捉えることができます。次に例を示します。&lt;br /&gt;
 print(1!=2);//出力:true&lt;br /&gt;
==比較演算子==&lt;br /&gt;
関係演算子とも呼ばれていて、その値の比較に使用されます。これらの演算子は数値型のみに使用することができます。&lt;br /&gt;
===小なり演算子===&lt;br /&gt;
小なり演算子&amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;は、左側の値が右側の値より小さい場合は&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;を、それ以外の場合は&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;を返します。次に例を示します。&lt;br /&gt;
 print(1&amp;lt;2);//出力:true&lt;br /&gt;
===大なり演算子===&lt;br /&gt;
大なり演算子&amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;は、左側の値が右側の値より大きい場合は&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;を、それ以外の場合は&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;を返します。次に例を示します。&lt;br /&gt;
 print(2&amp;gt;1);//出力:true&lt;br /&gt;
===以下演算子===&lt;br /&gt;
以下演算子&amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;は、左側の値が右側の値以下である場合は&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;を、それ以外の場合は&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;を返します。次に例を示します。&lt;br /&gt;
 print(1&amp;lt;=2);//出力:true&lt;br /&gt;
===以上演算子===&lt;br /&gt;
以上演算子&amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;は、左側の値が右側の値以上である場合は&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;を、それ以外の場合は&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;を返します。次に例を示します。&lt;br /&gt;
 print(2&amp;gt;=1);//出力:true&lt;br /&gt;
==論理演算子==&lt;br /&gt;
次の演算子は、ブール型の値について論理演算を行います。&lt;br /&gt;
===論理否定演算子===&lt;br /&gt;
論理否定演算子&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;は、単項の接頭辞でその値の論理否定が計算されます。次に例を示します。&lt;br /&gt;
 print(!true);//出力:false&lt;br /&gt;
===論理積演算子===&lt;br /&gt;
論理積(論理AND)演算子&amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt;または&amp;lt;code&amp;gt;&amp;amp;&amp;amp;&amp;lt;/code&amp;gt;は、左右の値の両方が&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;と評価された場合のみ&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;を返し、それ以外の場合&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;を返します。&amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt;演算子と&amp;lt;code&amp;gt;&amp;amp;&amp;amp;&amp;lt;/code&amp;gt;演算子との唯一の違いは後者は左辺が&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;と評価された場合右辺の評価は行われないことです。次に例を示します。&lt;br /&gt;
 print(true&amp;amp;true); //出力:true&lt;br /&gt;
 print(true&amp;amp;false);//出力:false&lt;br /&gt;
===論理和演算子===&lt;br /&gt;
論理和(論理OR)演算子&amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt;または&amp;lt;code&amp;gt;||&amp;lt;/code&amp;gt;は、左右の値の少なくとも一方が&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;と評価された場合に&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;を返し、それ以外の場合に&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;を返します。&amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt;演算子と&amp;lt;code&amp;gt;||&amp;lt;/code&amp;gt;演算子との唯一の違いは後者は左辺が&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;と評価された場合右辺の評価は行われないことです。次に例を示します。&lt;br /&gt;
 print(true|false); //出力:true&lt;br /&gt;
 print(false|false);//出力:false&lt;br /&gt;
&lt;br /&gt;
===排他的論理和演算子===&lt;br /&gt;
排他的論理和(論理XOR)演算子&amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt;は、左右の値が異なると評価された場合(すなわち、片方が&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;と評価されたならばもう片方が&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;と評価される場合)に&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;を返し、それ以外の場合は&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;を返します。次に例を示します。&lt;br /&gt;
 print(true^false);//出力:true&lt;br /&gt;
 print(true^true); //出力:false&lt;br /&gt;
=Null合体演算子=&lt;br /&gt;
==Null合体演算子==&lt;br /&gt;
Null合体演算子&amp;lt;code&amp;gt;??&amp;lt;/code&amp;gt;は、左の値が&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;でない場合その値を返し、それ以外の場合は右の値が評価され返されます。次に例を示します。&lt;br /&gt;
 var v = “ABC”;&lt;br /&gt;
 print(v??”Hello,World”);//出力:ABC&lt;br /&gt;
 v = null;&lt;br /&gt;
 print(v??”Hello,World”);//出力:Hello,World&lt;br /&gt;
==Null合体代入演算子==&lt;br /&gt;
Null合体代入演算子&amp;lt;code&amp;gt;??=&amp;lt;/code&amp;gt;は、その値が&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;と評価された場合のみ右辺の値を代入し、それ以外の場合は何もしません。次に例を示します。&lt;br /&gt;
 var v = null;&lt;br /&gt;
 v ??= &amp;quot;Hello,World&amp;quot;;&lt;br /&gt;
 print(v);//出力:Hello,World&lt;br /&gt;
&lt;br /&gt;
=型一致演算子=&lt;br /&gt;
型一致演算子&amp;lt;code&amp;gt;is&amp;lt;/code&amp;gt;は、左辺の値の型が右辺の値の表す型と一致するか、右辺の値の型と一致する場合は&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;を、それ以外の場合は&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;を返します。次に例を示します。&lt;br /&gt;
 string str = &amp;quot;Hello,World&amp;quot;;&lt;br /&gt;
 if(str is string)&lt;br /&gt;
 {&lt;br /&gt;
   print(str);&lt;br /&gt;
 }&lt;br /&gt;
 //出力:Hello,World&lt;br /&gt;
=型変換演算子=&lt;br /&gt;
型変換演算子&amp;lt;code&amp;gt;as&amp;lt;/code&amp;gt;は、左辺の値を右辺の表す型に変換します。右辺は&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型である必要があり、型変換に失敗した場合は&amp;lt;code&amp;gt;null&amp;lt;/code&amp;gt;を返します。次に例を示します。&lt;br /&gt;
 number num = 12345;&lt;br /&gt;
 print(num.type);//出力:NUMBER&lt;br /&gt;
 var str = (num as string);&lt;br /&gt;
 print(str.type);//出力:STRING&lt;br /&gt;
=条件演算子=&lt;br /&gt;
条件演算子(三項条件演算子)&amp;lt;code&amp;gt;?:&amp;lt;/code&amp;gt;は、論理式を評価し、論理式の評価結果(&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;または&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;)に応じて続く二つの式のいずれかの結果を返します。まずは次の例を参照してください。&lt;br /&gt;
 string todo = 現在の気温 &amp;gt; 30.0 ? &amp;quot;エアコンを入れる&amp;quot; : &amp;quot;エアコンを切る&amp;quot;;&lt;br /&gt;
 print(&amp;quot;todo={0}&amp;quot;,todo);&lt;br /&gt;
 //出力例&lt;br /&gt;
 //現在の気温が20℃の場合 : todo=エアコンを切る&lt;br /&gt;
 //現在の気温が32℃の場合 : todo=エアコンを入れる&lt;br /&gt;
上記の例では、現在の気温が30℃以上の場合、&amp;lt;code&amp;gt;todo&amp;lt;/code&amp;gt;に「エアコンを入れる」が代入されます。&lt;br /&gt;
&lt;br /&gt;
この例のように、この条件演算子の構文は次のようになります。&lt;br /&gt;
 条件 ? 結果A : 結果B&lt;br /&gt;
&amp;lt;code&amp;gt;条件&amp;lt;/code&amp;gt;式は、論理式で&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;または&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;のどちらかと評価される必要があります。&amp;lt;code&amp;gt;条件&amp;lt;/code&amp;gt;が&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;と評価された場合は、&amp;lt;code&amp;gt;結果A&amp;lt;/code&amp;gt;の式が評価され、&amp;lt;code&amp;gt;条件&amp;lt;/code&amp;gt;が&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;と評価された場合は、&amp;lt;code&amp;gt;結果B&amp;lt;/code&amp;gt;の式が評価され、それらの結果が演算の結果として返されます。結果Aと結果Bの両方が評価されることはありません。&lt;br /&gt;
&lt;br /&gt;
AliceScriptRC1時点で、条件演算子に複数の条件演算が含まれる処理は実行できません。つまり、次の式は正しく評価することができません。&lt;br /&gt;
 a ? b : c ? d : e&lt;br /&gt;
===条件演算子とIf文===&lt;br /&gt;
条件演算子を使用すると、いままでIf文を使用して行ってきたことの一部を簡潔な形で書き直すことができます。If文と条件演算子を状況に応じて使い分けると、よりコードが読みやすくなります。次の例を参照してください。&lt;br /&gt;
 if(今日の天気 == 晴れ)　&lt;br /&gt;
   {&lt;br /&gt;
 　  todo = &amp;quot;公園に行き&amp;quot;;&lt;br /&gt;
   }&lt;br /&gt;
 else&lt;br /&gt;
   {&lt;br /&gt;
 　  todo = &amp;quot;家にい&amp;quot;;&lt;br /&gt;
   }&lt;br /&gt;
 print(&amp;quot;今日は、{0}ます。&amp;quot;,todo);&lt;br /&gt;
 //出力例&lt;br /&gt;
 //今日の天気が晴れの場合 : 今日は、公園に行きます。&lt;br /&gt;
 //今日の天気が曇りの場合 : 今日は、家にいます。&lt;br /&gt;
上記の例は、現在の天気が晴れであれば、todoに「公園に行き」が代入され、「今日は、公園に行きます。」が表示されます。&lt;br /&gt;
それ以外の場合では、todoに「家にい」が代入され、「今日は、家にいます。」が表示されます。&lt;br /&gt;
&lt;br /&gt;
このコードを条件演算子を用いた書き方にすると次の例のようになります。&lt;br /&gt;
 (今日の天気 == 晴れ) ? todo = &amp;quot;公園に行き&amp;quot; : todo = &amp;quot;家にい&amp;quot;;&lt;br /&gt;
 print(&amp;quot;今日は、{0}ます。&amp;quot;,todo);&lt;br /&gt;
&lt;br /&gt;
これはただ単にIf文を条件演算子に書き換えただけで、あまりよい使用方法とは言えません。条件演算子の値を返すという特性を使用すれば、次の例のように書き換えることもできます。&lt;br /&gt;
 todo = (今日の天気 == 晴れ) ? &amp;quot;公園に行き&amp;quot; : &amp;quot;家にい&amp;quot;;&lt;br /&gt;
 print(&amp;quot;今日は、{0}ます。&amp;quot;,todo);&lt;br /&gt;
&lt;br /&gt;
上記の例のように左辺に対して条件演算の結果を代入したほうが、より簡潔かつ分かりやすくなります。条件演算子をまだよく理解していない人のためにコメントを書いておくとより良いでしょう。&lt;br /&gt;
&lt;br /&gt;
条件演算子は行数を短くするよりも、他の人がコードを読んだときに簡単に理解できるようになることを期待して導入されました。基本的には、If文を使用し、条件演算子はそれを使用することで簡潔にわかりやすくなる場合のみ使用するべきです。&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=Alice%EF%BC%88%E3%82%AD%E3%83%A3%E3%83%A9%E3%82%AF%E3%82%BF%E3%83%BC%EF%BC%89&amp;diff=1253</id>
		<title>Alice（キャラクター）</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=Alice%EF%BC%88%E3%82%AD%E3%83%A3%E3%83%A9%E3%82%AF%E3%82%BF%E3%83%BC%EF%BC%89&amp;diff=1253"/>
		<updated>2023-06-29T01:22:23Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/me/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
{{Accordion|{{Alert|この項目は編集者のおふざけが多く含まれています。また、このページに書かれているほとんどの内容はAliceScriptのプログラミングに関係の無い内容です。|注意|4|||0em}}|{{Alert|この表示を偶然クリックしてしまったみなさん。&amp;lt;br&amp;gt;このキャラクターは[[User:Zen|Zen]]によって作られたキャラクターであることをここで明確にさせてください。このキャラクターについて[[User:Master|WSOFT]]に質問や感想を送られても困ります。||1|||0}}|true}}&lt;br /&gt;
&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 16&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5z&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt; [https://download.wsoft.gq/WS00086 VRMモデルをダウンロード]||0|18px}}&lt;br /&gt;
&lt;br /&gt;
Alice(ありす)はAliceProjec及びその関連プロジェクトの公式アンバサダーである。&lt;br /&gt;
=概要=&lt;br /&gt;
AliceScript及びAliceProjectのマスコットキャラクター兼公式アンバサダー。見た目は世間一般でよく言われる健全で明るい美少女(?)である。だが、実際のところ本人も自称するほどの暇人であり、生粋の淫夢厨である。非常に多才でプログラミングはもちろんのこと、類い稀なる国語力やインターネットに潜る事で獲得した大量の知識を活用し、大抵のことは難なくこなしてしまう、しかし、数学Aと英語だけはなぜかどう足掻いてもできず、いつも製作者の悩みのタネとなっている。たまにシャングリラに観光に行く。一人称は主に「Alice」「アリス」「ワイ」の3つであり、周りからは「Alice」「Aliceたん」「蟻巣」「ゲェジ」など様々な名前で呼ばれている。&lt;br /&gt;
&lt;br /&gt;
*身長:荒くなるが拡大縮小することで自由自在に操れる&lt;br /&gt;
&lt;br /&gt;
*体重:縺ｲ縺ｿ縺､&lt;br /&gt;
&lt;br /&gt;
*性別:不明&lt;br /&gt;
&lt;br /&gt;
*生年月日:未定&lt;br /&gt;
&lt;br /&gt;
*出身地:WSOFTのベットの下にあるサーバー&lt;br /&gt;
&lt;br /&gt;
*住処:.NETまたはTwitter時々WSOFTのルーターのとなり&lt;br /&gt;
&lt;br /&gt;
*特技:プログラミング、スペース削除&lt;br /&gt;
&lt;br /&gt;
*趣味:動画視聴、WSOFTのPCと精神を破壊すること、ネットサーフィン&lt;br /&gt;
&lt;br /&gt;
*長所:話が分かりやすい、常にネットの海の潜っているためさまざまな知識が豊富&lt;br /&gt;
&lt;br /&gt;
*短所:時々不可解な言動を起こす（特に演算時）&lt;br /&gt;
&lt;br /&gt;
*好きなもの:ハイエンドPC、UNIX、ハードウェア焼きおにぎり、C、C#、C++、WindowsXP以降のOS（特にWindows10）、インテル、メモ帳、食物繊維たっぷりの野菜&lt;br /&gt;
&lt;br /&gt;
*嫌いなもの:Python、金盾、ARM、チー牛、WindowsXP以前のOS、Mac（特にAppleシリコン搭載モデル）、VScode、ブロックチェーン、NFT、Web3&lt;br /&gt;
&lt;br /&gt;
*苦手なもの:数A、英語&lt;br /&gt;
&lt;br /&gt;
*弱点:パッチ適用時、プラグイン&lt;br /&gt;
&lt;br /&gt;
=性格=&lt;br /&gt;
&lt;br /&gt;
基本的には明るく能天気な性格である。しかし、バグ発生時は感情の起伏が非常に激しく、暴走状態になり情緒も非常に不安定になるため注意が必要である。めんどくさがり屋で色々と雑な部分が多い。怠け癖が非常に強く、さほど時間の掛からないような新機能の実装作業も、考案から実装までに非常に長い遅れが出てしまうほどである。ほかにも、プログラミングをする際に多くのプログラマーが見やすくするために挿入する空白を一切入れないという行為も平然と行ってしまう。しかし、深刻なバグや不具合などに対しての対応スピードはトップクラス級に速かったり、必要事項の定期的なチェックなどは怠らず、めんどくさがりといっても、ある程度の分別はついているようである。暴走時は誰もが手を付けて抑えられるほど暴れ、様々な奇行を行うが本人はそれを覚えていないことが多い。&lt;br /&gt;
&lt;br /&gt;
=小ネタ=&lt;br /&gt;
&lt;br /&gt;
実は製作者の思いつきで5分ほどで考えられたキャラクターである。&lt;br /&gt;
&lt;br /&gt;
パッチ適用時は正常な思考回路が一時的に停止し、絶頂状態に入る。&amp;lt;s&amp;gt;（要するにイく）&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
使用中にCPUやメモリの動作に異常が発生する場合があるが、多くの場合はAliceがハードウェア焼きおにぎりを作っている事が原因である。&lt;br /&gt;
&lt;br /&gt;
数Aをさせると機能が停止することがある。&lt;br /&gt;
&lt;br /&gt;
英語を話すときは大体感覚で話している。&lt;br /&gt;
&lt;br /&gt;
シャングリラを第2の故郷だと思っている。&lt;br /&gt;
&lt;br /&gt;
=役職=&lt;br /&gt;
&lt;br /&gt;
*AliceProject公式アンバサダー&lt;br /&gt;
*AliceScript公式マスコットキャラクター&lt;br /&gt;
*nextWorld観光大使&lt;br /&gt;
&lt;br /&gt;
=Aliceからみんなに一言=&lt;br /&gt;
「ハローワールド！AliceProject公式アンバサダーのAliceだよ！これからみんなと楽しくクリエイティブなプログラミングライフを送っていきたいです！応援よろしくね！あと私で抜こうとしてるそこのキモオタ君！そんなことして恥ずかしくないのかな？&amp;lt;s&amp;gt;とってもキモイよ☆（ド直球）&amp;lt;/s&amp;gt;」&lt;br /&gt;
&lt;br /&gt;
=関連項目=&lt;br /&gt;
&lt;br /&gt;
[https://alice.wsoft.gq/index.php?title=WSOFTScript%E3%81%8B%E3%82%89%E3%81%AE%E7%A7%BB%E8%A1%8C  Shangri-la]&lt;br /&gt;
&lt;br /&gt;
[https://twitter.com/Alice95563264 Alice公式Twitter]&lt;br /&gt;
&lt;br /&gt;
{{Accordion|{{Alert|この項目は書きかけの項目ですが、この項目を加筆・編集してくださる協力者は求めていません、てかそんな暇あったらもっと自分のためになることをしろ。もしもあなたがAliceたんのような暇人で、時間を持て余しているのならこの項目をユーモアの溢れる項目に変えてみろください。||1|||0em}}|{{Accordion|{{Alert|この表示もクリックしてしまったみなさん。&amp;lt;br&amp;gt;この項目が書きかけの項目であることは事実ですが、この項目を編集できる編集者は[[User:Zen|Zen]]と[[User:master|私]]しかいません。私はこの記事を編集する気はありませんから、事実上Aliceたんのような暇人はZenのみということなります。そうですよね？？}}|{{Alert|もしこの記事の編集履歴に私の名前が残されているとしたら、それはおそらくバグでしょう。}}|true}}|true}}&lt;br /&gt;
&lt;br /&gt;
[[Category:基本]]&lt;br /&gt;
&lt;br /&gt;
[[Category:書きかけの項目]]&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E5%88%9D%E3%82%81%E3%81%A6%E3%81%AEAliceScript&amp;diff=1252</id>
		<title>初めてのAliceScript</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E5%88%9D%E3%82%81%E3%81%A6%E3%81%AEAliceScript&amp;diff=1252"/>
		<updated>2023-06-29T01:21:30Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/tutorial/begining-alice/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
この記事では、AliceScriptの動作環境を構築し、お使いの任意のエディタとAliceScriptADKを使用してAliceScriptコンソールアプリケーションを作成して実行する方法を示します。&lt;br /&gt;
=はじめに=&lt;br /&gt;
AliceScriptは、軽量な.NETエコシステム上で動作するインタプリンタ型のプログラミング言語です。AliceScriptはC#やPythonをルーツとしているため、C、C#、JavaScript、Pyhton、PHPのプログラマーであればすぐに使いこなすことができます。&lt;br /&gt;
AliceScriptについて詳しく知るには、[[AliceScriptのツアー]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
この記事では、まず最初にAliceScriptで開発を始めるために必要な作業を確認します。(すでにAliceScriptを使用している場合はこのセクションを飛ばしても構いません)。&lt;br /&gt;
次に、AliceScriptを使って簡単なコンソールアプリケーションを例として作成し、AliceScriptの基本的な事項を解説します。&lt;br /&gt;
&lt;br /&gt;
=動作環境の構築=&lt;br /&gt;
AliceScriptを使用したアプリケーションの開発についての説明の前に、まず、AliceScriptを実行できるコンピュータを用意する必要があります。.NETCore3.1がインストールされているコンピュータが必要です。そのようなコンピュータを用意できない場合は、.NET Framework上で動作するAliceSisterを使用する必要があります。AliceSisterはAliceScriptとほぼ同じ動作をするAliceScriptの別の実装です。&lt;br /&gt;
===AliceScriptを使用する場合===&lt;br /&gt;
自分のコンピュータでAliceScriptを実行する場合は、次のソフトウェアをインストールする必要があります。&lt;br /&gt;
*.NET Core v3.1以上&lt;br /&gt;
*AliceScript ADK&lt;br /&gt;
&lt;br /&gt;
.NETCoreのインストールについては、Microsoftの公式ガイドを参照してください。&lt;br /&gt;
*Windowsに.NETをインストールする[[https://docs.microsoft.com/ja-jp/dotnet/core/install/windows?tabs=net50]]&lt;br /&gt;
*MacOSに.NETをインストールする[[https://docs.microsoft.com/ja-jp/dotnet/core/install/macos]]&lt;br /&gt;
*Linuxに.NETをインストールする[[https://docs.microsoft.com/ja-jp/dotnet/core/install/linux]]&lt;br /&gt;
&lt;br /&gt;
.NETCoreに加えて、AliceScriptADKもコンピュータにインストールする必要があります。が、実際のところAliceScriptADKはポータブル版として機能するため、ダウンロードしたファイルを解凍するだけで機能します。&lt;br /&gt;
AliceScriptADKをダウンロードするには、[[AliceScriptのダウンロード#AliceScriptのダウンロード|AliceScriptのダウンロード]]を参照してください。&lt;br /&gt;
===AliceSisterを使用する場合===&lt;br /&gt;
自分のコンピュータでAliceSisterを実行する場合、.NETCoreは不要です。が、代わりにコンピュータに.NETFramework v4.5以降がインストールされている必要があります。このオプションはWindowsコンピュータでのみ選択可能です。&lt;br /&gt;
.NETFramework 4.5はWindows8以降またはWindowsServer2012以降であれば標準でインストールされています。それ以前のバージョンをお使いの方は、別途インストールが必要なことがあります。次のMicrosoftのガイドを参照してください。&lt;br /&gt;
*.NETFramework インストールガイド[[https://docs.microsoft.com/ja-jp/dotnet/framework/install/]]&lt;br /&gt;
&lt;br /&gt;
.NETFrameworkがインストールされている環境では、AliceSisterADKをコンピュータにインストールする必要があります。が、実際のところAliceSisterADKはポータブル版として機能するため、ダウンロードしたファイルを解凍するだけで機能します。&lt;br /&gt;
AliceSisterADKをダウンロードするには、[[AliceScriptのダウンロード#AliceSisterのダウンロード|AliceSisterのダウンロード]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
=テストプログラムの実行と簡単なプログラムの作成=&lt;br /&gt;
&lt;br /&gt;
次にダウンロードし解凍したAliceScriptまたはAliceSisterのフォルダを開きます。&lt;br /&gt;
まず初めに、すでに備わっているテストプログラムを実行します。フォルダ内のalice.exeをクリックします。次に、表示された画面上に次のように入力します。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;iceimport(&amp;quot;TestPkg.zip&amp;quot;);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
そうすると次のような出力結果となります。(実行環境や使用バージョンによっては異なる場合があります)（画像はAliceSisterRC2のものです)&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Testprogram out.png|750px|frameless|border|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
期待通りの動作をしない場合パーミッションの設定が適切でない可能性があります。設定からTestPkg.zip、Alice.dll又はAlice.Runtime.dllのアクセス権の設定を見直してください。&lt;br /&gt;
&lt;br /&gt;
次に簡易的なプログラムの作成を行います、alice.exeが存在するディレクトリ上にテキストファイルを作成し、次のようにコードを入力します。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;print(&amp;quot;Hello,World&amp;quot;);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
入力後保存します。保存後、作成したテキストファイルをRun.batと呼ばれるファイルにトラック＆ドロップします、そうすると作成したプログラムが実行されます。次のように出力されれば成功です。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Hello,World&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
以上で基礎的なチュートリアルは終了です。&lt;br /&gt;
&lt;br /&gt;
[[category:基本]][[Category:チュートリアル]]&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=AliceScript%E3%81%AE%E3%83%84%E3%82%A2%E3%83%BC&amp;diff=1251</id>
		<title>AliceScriptのツアー</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=AliceScript%E3%81%AE%E3%83%84%E3%82%A2%E3%83%BC&amp;diff=1251"/>
		<updated>2023-06-29T01:20:33Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:基本]]&lt;br /&gt;
&lt;br /&gt;
{{Alert|この記事のより新しい版が[https://docs.wsoft.ws/products/alice/welcome/ WSOFTDocs]にあります。AliceScriptWikiでは、この記事はもう更新されません。||04}}&lt;br /&gt;
&lt;br /&gt;
==はじめに==&lt;br /&gt;
&lt;br /&gt;
AliceScript(アリススクリプトと読みます)は、軽量な.NETエコシステム上で動作するインタプリンタ型のプログラミング言語です。&lt;br /&gt;
AliceScriptを使用すると簡単にアプリケーションを構築することができます。&lt;br /&gt;
AliceScriptはC#やPythonをルーツとしているため、C、C#、JavaScript、Pyhton、PHPのプログラマーであればすぐに使いこなすことができます。&lt;br /&gt;
&lt;br /&gt;
AliceScriptには、簡単に高度なアプリケーションを作成するのに役立つ機能がいくつかあります。&amp;quot;ガページコレクション&amp;quot;には到達できず、使用されていないオブジェクトによって占有されたメモリを自動的に回収することができる機能があります。&lt;br /&gt;
&amp;quot;デリゲート&amp;quot;には自他のオブジェクトに対して簡単に連絡を取ることができる機能があります。&amp;quot;例外処理&amp;quot;には、エラーの検出と復旧を行うためのアプローチが用意されています。&lt;br /&gt;
AliceScriptは&amp;quot;統合型システム&amp;quot;を備えていますから、numberやstringなどの型を含めたすべての型はルートとなる一つのVariable型から派生しています。すべての型は、一般的な操作のセットを共有していますから、すべての型を一貫した方法で操作することができます。&lt;br /&gt;
&lt;br /&gt;
==AliceScriptのアーキテクチャ==&lt;br /&gt;
AliceScriptプログラムは、[[AliceModel]]で動作します。AliceScript.dllはWSOFTによる.NETCore上で動作する[[AliceModel]]の実装です。&lt;br /&gt;
&lt;br /&gt;
その他の公式による[[AliceModel]]の実装として.NETFramework上で動作する[[AliceSister]]があります。&lt;br /&gt;
&lt;br /&gt;
AliceScriptで記述されたプログラムは[[AliceModel]]の実装によって動的に解析され、実行されます。&lt;br /&gt;
&lt;br /&gt;
[[AliceModel]]には、AliceScriptを実行できるインタプリタであるAlice.Interpreter以外にも、Alice.Runtimeが用意されています。このライブラリには、ファイルの入出力、XML 解析のための文字列操作、インターネットへの接続、役に立つさまざまな機能を備えた名前空間があります。&lt;br /&gt;
Alice.Interpreterはさまざまなライブラリやファイルをプログラムに統合し、使用可能にする役割を担っています。&lt;br /&gt;
&lt;br /&gt;
==Hello,World==&lt;br /&gt;
&amp;quot;Hello, World&amp;quot; は、プログラミング言語を紹介するために伝統的に使用されているプログラムです。 これをAliceScriptで記述すると次のようになります。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;print(&amp;quot;Hello,World&amp;quot;);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
プログラムの出力は、AliceScript.dllの[[Print]]メソッドによって出力されます。&lt;br /&gt;
&lt;br /&gt;
AliceScriptを使用する上で最も優れている点は、初心者に対しては非常に分かり易いと同時に、プロフェッショナルのプログラマに対しては多くの進んだ機能を提供している点です。AliceScriptの機能を羅列した長い一覧表を読まなければならないのかと心配する必要はありません。AliceScriptはすぐに始められますし、数時間の内に簡単なスクリプトが書けるようになります。&lt;br /&gt;
&lt;br /&gt;
==変数と型==&lt;br /&gt;
様々な変数はその型によってその変数の持つ値や動作が決定されます。&lt;br /&gt;
&lt;br /&gt;
AliceScriptの型には数値を表す&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;型、Unicode文字列を表す&amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt;型、ブール値を表す&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;型、バイト配列を表す&amp;lt;code&amp;gt;bytes&amp;lt;/code&amp;gt;型、任意の型による変数を持つ配列を表す&amp;lt;code&amp;gt;array&amp;lt;/code&amp;gt;型、空の変数であることを表す&amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;型、列挙型&amp;lt;code&amp;gt;enum E{…}&amp;lt;/code&amp;gt;、デリゲート型&amp;lt;code&amp;gt;delegate(…){…}&amp;lt;/code&amp;gt;、ユーザー定義によるクラスを表す&amp;lt;code&amp;gt;object&amp;lt;/code&amp;gt;型、変数の型を表す&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;型があります。&lt;br /&gt;
&lt;br /&gt;
型システムについて詳しく知るには[[変数#型|変数の型]]の記事を参照してください。&lt;br /&gt;
&lt;br /&gt;
==デプロイモデル==&lt;br /&gt;
AliceScriptアプリは、次の2つの異なる形式で公開できます。&lt;br /&gt;
*[[AlicePackage]]。アプリケーションをアリスパッケージとして公開すると、プログラムのソースコード、ライブラリ、パッケージやリソースファイルを含むAlicePackage(*.ice)ファイルが生成されます。生成されたAlicePackageファイルを配布することで、AliceScriptが導入されている環境に迅速に展開できます。&lt;br /&gt;
&lt;br /&gt;
==AliceScriptにできることは？==&lt;br /&gt;
AliceScriptが使用される場所は主に3つあります。&lt;br /&gt;
&lt;br /&gt;
*Windowsデスクトップアプリケーションの作成。これは最も初期の段階から存在し、AliceScriptの中心となる分野です。ここでAliceScriptを動作させるためには3つのものが必要です。AliceScriptインタプリンタ、.NETCoreまたは.NETFramework、そしてそれが動作するコンピュータです。これらは[[初めてのAliceScript]]に詳しい説明があります。&lt;br /&gt;
&lt;br /&gt;
*コマンドラインでのスクリプティング。AliceScriptは多くのオペレーティングシステムに搭載されている端末のように対話的に実行することができます（これはREPLといいます）。このタイプはタスクスケジューラを使用して一定間隔で スクリプトを実行したい場合や、ちょっとした文書処理を行うのに最適な方法です。&lt;br /&gt;
&lt;br /&gt;
*既存のアプリケーションの組み込みスクリプティング。AliceScriptはC#から簡単に呼び出すことができるため、既存のアプリケーションに拡張性を持たせることができます。&lt;br /&gt;
&lt;br /&gt;
お分かりの通り、このページではAliceScriptの機能やAliceScriptを使用することの利点を全て紹介することは出来ません。&lt;br /&gt;
このサイトのおまかせ表示を使ってみてください。あなたの知らないAliceScriptに出会うことができるかもしれません。&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=1250</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=1250"/>
		<updated>2023-04-07T08:25:23Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__=AliceScriptへようこそ=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot;&lt;br /&gt;
|+style=&amp;quot;white-space:nowrap&amp;quot;|[https://docs.wsoft.ws/products/alice/download AliceScriptのダウンロード]&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|AliceScript &lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://download.wsoft.ws/WS00165 2.2]&lt;br /&gt;
|-&lt;br /&gt;
|最新安定板&lt;br /&gt;
|[https://download.wsoft.ws/WS00178 2.2.1]&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|[[AliceSister]]&lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://download.wsoft.ws/WS00166 2.2]&lt;br /&gt;
|-&lt;br /&gt;
|最新安定板&lt;br /&gt;
|[https://download.wsoft.gq/WS00179 2.2.1]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|[https://github.com/WSOFT-Project/Losetta Losetta]&lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://github.com/WSOFT-Project/Losetta/releases 0.9.20]&lt;br /&gt;
|-&lt;br /&gt;
![[AliceEULA-R|規約]]&lt;br /&gt;
![[AliceScript_Wiki:著作権|著作権情報]]&lt;br /&gt;
|}&lt;br /&gt;
{{Accordion|AliceScriptは、.NET上で動作する汎用性のあるスクリプト言語です。 AliceScriptを使用すると簡単にアプリケーションを構築することができます。 AliceScriptはC#やPythonをルーツとしているため、C、C#、JavaScript、Pyhton、PHPのプログラマーであればすぐに使いこなすことができます...|AliceScriptには、簡単に高度なアプリケーションを作成するのに役立つ機能がいくつかあります。&amp;quot;ガページコレクション&amp;quot;には到達できず、使用されていないオブジェクトによって占有されたメモリを自動的に回収することができる機能があります。 &amp;quot;デリゲート&amp;quot;には自他のオブジェクトに対して簡単に連絡を取ることができる機能があります。&amp;quot;例外処理&amp;quot;には、エラーの検出と復旧を行うためのアプローチが用意されています。 AliceScriptは&amp;quot;統合型システム&amp;quot;を備えていますから、numberやstringなどの型を含めたすべての型はルートとなる一つのVariable型から派生しています。すべての型は、一般的な操作のセットを共有していますから、すべての型を一貫した方法で操作することができます。AliceScriptについてもっと詳しく知るには、[[AliceScriptのツアー]]を参照してください。|true}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 14&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M1 2.828c.885-.37 2.154-.769 3.388-.893 1.33-.134 2.458.063 3.112.752v9.746c-.935-.53-2.12-.603-3.213-.493-1.18.12-2.37.461-3.287.811V2.828zm7.5-.141c.654-.689 1.782-.886 3.112-.752 1.234.124 2.503.523 3.388.893v9.923c-.918-.35-2.107-.692-3.287-.81-1.094-.111-2.278-.039-3.213.492V2.687zM8 1.783C7.015.936 5.587.81 4.287.94c-1.514.153-3.042.672-3.994 1.105A.5.5 0 0 0 0 2.5v11a.5.5 0 0 0 .707.455c.882-.4 2.303-.881 3.68-1.02 1.409-.142 2.59.087 3.223.877a.5.5 0 0 0 .78 0c.633-.79 1.814-1.019 3.222-.877 1.378.139 2.8.62 3.681 1.02A.5.5 0 0 0 16 13.5v-11a.5.5 0 0 0-.293-.455c-.952-.433-2.48-.952-3.994-1.105C10.413.809 8.985.936 8 1.783z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt; AliceScriptの新しいサイト:[https://docs.wsoft.ws/products/alice AliceScriptDocs]||0|24px}}&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 16&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5z&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt; [https://docs.wsoft.ws/products/alice/download AliceScriptのダウンロード] ||0|24px}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 16&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M0 2.5A1.5 1.5 0 0 1 1.5 1h11A1.5 1.5 0 0 1 14 2.5v10.528c0 .3-.05.654-.238.972h.738a.5.5 0 0 0 .5-.5v-9a.5.5 0 0 1 1 0v9a1.5 1.5 0 0 1-1.5 1.5H1.497A1.497 1.497 0 0 1 0 13.5v-11zM12 14c.37 0 .654-.211.853-.441.092-.106.147-.279.147-.531V2.5a.5.5 0 0 0-.5-.5h-11a.5.5 0 0 0-.5.5v11c0 .278.223.5.497.5H12z&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M2 3h10v2H2V3zm0 3h4v3H2V6zm0 4h4v1H2v-1zm0 2h4v1H2v-1zm5-6h2v1H7V6zm3 0h2v1h-2V6zM7 8h2v1H7V8zm3 0h2v1h-2V8zm-3 2h2v1H7v-1zm3 0h2v1h-2v-1zm-3 2h2v1H7v-1zm3 0h2v1h-2v-1z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt;  [https://docs.wsoft.ws/blog/migration-to-docs/ WSOFTのドキュメントの WSOFT Docs への移行に関する情報]||2|24px}} &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! AliceScriptの基礎 !! 主要な機能 !! 新機能&lt;br /&gt;
|-&lt;br /&gt;
| [[AliceScriptのツアー]]&lt;br /&gt;
| [[式]]&lt;br /&gt;
| [[新機能の一覧|AliceScriptの新機能]]&lt;br /&gt;
|-&lt;br /&gt;
| [[初めてのAliceScript]]&lt;br /&gt;
| [[変数]]&lt;br /&gt;
| [[破壊的変更の一覧]]&lt;br /&gt;
|-&lt;br /&gt;
! つながる&lt;br /&gt;
| [[関数リファレンス]]&lt;br /&gt;
| [[互換性|バージョンの互換性]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Alice（キャラクター）|AliceScript公式アンバサダー]]&lt;br /&gt;
| [[例外]]&lt;br /&gt;
| [[WSOFTScriptからの移行]]&lt;br /&gt;
|-&lt;br /&gt;
| [https://discord.gg/ZHyxYSeCeP Aliceプロジェクト公式コミュニティ]&lt;br /&gt;
| [[言語構造]]&lt;br /&gt;
| [[リリースノート]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=1249</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=1249"/>
		<updated>2023-03-11T07:28:09Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__=AliceScriptへようこそ=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot;&lt;br /&gt;
|+style=&amp;quot;white-space:nowrap&amp;quot;|[https://docs.wsoft.ws/products/alice/download AliceScriptのダウンロード]&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|AliceScript &lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://download.wsoft.ws/WS00165 2.2]&lt;br /&gt;
|-&lt;br /&gt;
|最新安定板&lt;br /&gt;
|[https://download.wsoft.ws/WS00178 2.2.1]&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|[[AliceSister]]&lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://download.wsoft.ws/WS00166 2.2]&lt;br /&gt;
|-&lt;br /&gt;
|最新安定板&lt;br /&gt;
|[https://download.wsoft.gq/WS00179 2.2.1]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|[https://github.com/WSOFT-Project/Losetta Losetta]&lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://github.com/WSOFT-Project/Losetta/releases 0.9.19]&lt;br /&gt;
|-&lt;br /&gt;
![[AliceEULA-R|規約]]&lt;br /&gt;
![[AliceScript_Wiki:著作権|著作権情報]]&lt;br /&gt;
|}&lt;br /&gt;
{{Accordion|AliceScriptは、.NET上で動作する汎用性のあるスクリプト言語です。 AliceScriptを使用すると簡単にアプリケーションを構築することができます。 AliceScriptはC#やPythonをルーツとしているため、C、C#、JavaScript、Pyhton、PHPのプログラマーであればすぐに使いこなすことができます...|AliceScriptには、簡単に高度なアプリケーションを作成するのに役立つ機能がいくつかあります。&amp;quot;ガページコレクション&amp;quot;には到達できず、使用されていないオブジェクトによって占有されたメモリを自動的に回収することができる機能があります。 &amp;quot;デリゲート&amp;quot;には自他のオブジェクトに対して簡単に連絡を取ることができる機能があります。&amp;quot;例外処理&amp;quot;には、エラーの検出と復旧を行うためのアプローチが用意されています。 AliceScriptは&amp;quot;統合型システム&amp;quot;を備えていますから、numberやstringなどの型を含めたすべての型はルートとなる一つのVariable型から派生しています。すべての型は、一般的な操作のセットを共有していますから、すべての型を一貫した方法で操作することができます。AliceScriptについてもっと詳しく知るには、[[AliceScriptのツアー]]を参照してください。|true}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 14&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M1 2.828c.885-.37 2.154-.769 3.388-.893 1.33-.134 2.458.063 3.112.752v9.746c-.935-.53-2.12-.603-3.213-.493-1.18.12-2.37.461-3.287.811V2.828zm7.5-.141c.654-.689 1.782-.886 3.112-.752 1.234.124 2.503.523 3.388.893v9.923c-.918-.35-2.107-.692-3.287-.81-1.094-.111-2.278-.039-3.213.492V2.687zM8 1.783C7.015.936 5.587.81 4.287.94c-1.514.153-3.042.672-3.994 1.105A.5.5 0 0 0 0 2.5v11a.5.5 0 0 0 .707.455c.882-.4 2.303-.881 3.68-1.02 1.409-.142 2.59.087 3.223.877a.5.5 0 0 0 .78 0c.633-.79 1.814-1.019 3.222-.877 1.378.139 2.8.62 3.681 1.02A.5.5 0 0 0 16 13.5v-11a.5.5 0 0 0-.293-.455c-.952-.433-2.48-.952-3.994-1.105C10.413.809 8.985.936 8 1.783z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt; AliceScriptの新しいサイト:[https://docs.wsoft.ws/products/alice AliceScriptDocs]||0|24px}}&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 16&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5z&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt; [https://docs.wsoft.ws/products/alice/download AliceScriptのダウンロード] ||0|24px}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 16&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M0 2.5A1.5 1.5 0 0 1 1.5 1h11A1.5 1.5 0 0 1 14 2.5v10.528c0 .3-.05.654-.238.972h.738a.5.5 0 0 0 .5-.5v-9a.5.5 0 0 1 1 0v9a1.5 1.5 0 0 1-1.5 1.5H1.497A1.497 1.497 0 0 1 0 13.5v-11zM12 14c.37 0 .654-.211.853-.441.092-.106.147-.279.147-.531V2.5a.5.5 0 0 0-.5-.5h-11a.5.5 0 0 0-.5.5v11c0 .278.223.5.497.5H12z&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M2 3h10v2H2V3zm0 3h4v3H2V6zm0 4h4v1H2v-1zm0 2h4v1H2v-1zm5-6h2v1H7V6zm3 0h2v1h-2V6zM7 8h2v1H7V8zm3 0h2v1h-2V8zm-3 2h2v1H7v-1zm3 0h2v1h-2v-1zm-3 2h2v1H7v-1zm3 0h2v1h-2v-1z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt;  [https://docs.wsoft.ws/blog/migration-to-docs/ WSOFTのドキュメントの WSOFT Docs への移行に関する情報]||2|24px}} &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! AliceScriptの基礎 !! 主要な機能 !! 新機能&lt;br /&gt;
|-&lt;br /&gt;
| [[AliceScriptのツアー]]&lt;br /&gt;
| [[式]]&lt;br /&gt;
| [[新機能の一覧|AliceScriptの新機能]]&lt;br /&gt;
|-&lt;br /&gt;
| [[初めてのAliceScript]]&lt;br /&gt;
| [[変数]]&lt;br /&gt;
| [[破壊的変更の一覧]]&lt;br /&gt;
|-&lt;br /&gt;
! つながる&lt;br /&gt;
| [[関数リファレンス]]&lt;br /&gt;
| [[互換性|バージョンの互換性]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Alice（キャラクター）|AliceScript公式アンバサダー]]&lt;br /&gt;
| [[例外]]&lt;br /&gt;
| [[WSOFTScriptからの移行]]&lt;br /&gt;
|-&lt;br /&gt;
| [https://discord.gg/ZHyxYSeCeP Aliceプロジェクト公式コミュニティ]&lt;br /&gt;
| [[言語構造]]&lt;br /&gt;
| [[リリースノート]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=WSOFT%E3%81%AE%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE_WSOFT_Docs_%E3%81%B8%E3%81%AE%E7%A7%BB%E8%A1%8C%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E6%83%85%E5%A0%B1&amp;diff=1248</id>
		<title>WSOFTのドキュメントの WSOFT Docs への移行に関する情報</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=WSOFT%E3%81%AE%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE_WSOFT_Docs_%E3%81%B8%E3%81%AE%E7%A7%BB%E8%A1%8C%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E6%83%85%E5%A0%B1&amp;diff=1248"/>
		<updated>2023-01-27T00:09:45Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;この記事では、WSOFTの提供している、あるいは提供していた、あみうは、WebSailing-Net、AliceScriptWikiおよび、WSOFTがwsoft.gq上で公開していたすべての記事の、WSOFTDocsへの移行に関する情報をお知らせします。&lt;br /&gt;
WSOFTは、今後数か月かけて記事やコンテンツの構造、形式、および基盤となるシステムを徹底的に見直し、WSOFTの提供するコンテンツを一つのサイトに一元化する全プロジェクト共通の取り組みを実施します。&lt;br /&gt;
&lt;br /&gt;
==AmebaOwandからWSOFTCMS、さらにWSOFTDocsへ==&lt;br /&gt;
2018年、WebbSailingのサポート記事提供の場として、WebSailing-Netが誕生しました。WebSailingが、NX系に移行するまでの間、21の記事がAmebaOwandによってホストされました。&lt;br /&gt;
&lt;br /&gt;
WSTubeの開発に際して、WSOFTは、自前でサーバーを用意し、そこで記事を提供する方式が導入されました。そこで、WSOFTはWSTubeで設計したUIを流用し、WSOFTCMSを開発しました。現在でも、WSOFTScriptのサイトで体験することができます。WSOFTは、この方式を3年以上にわたって使用し続け、その結果、200を超える記事がWSOFTCMSを通じて提供されました。&lt;br /&gt;
&lt;br /&gt;
==新しいドキュメント管理方法==&lt;br /&gt;
ソフトウェアの多様化やリリースサイクルの短縮につれて、見やすくできるだけ最新のドキュメントを提供する必要が増大しました。記事の執筆を開発のスピードに合わせる必要があり、さらに、サポートが終了しているプロジェクトの資産を未だに使用し続けていることなどから、WSOFTでの近代的なドキュメント管理方法を再検討することに決めました。新しいプロジェクトには次の事項が求められます。&lt;br /&gt;
&lt;br /&gt;
*ドキュメントの集約 新しいサイトでは、WSOFTが提供しているすべての記事を一つのサイトに集約します。例えば、AliceScriptを使ってWSPluginを設計しようとしている開発者は、WebSailing、WSPlugin、AliceScriptに関連するすべての記事やヘルプを検索することができます。&lt;br /&gt;
*ユーザー体験の向上 WSOFTCMSは、WSTube譲りのユーザーインターフェースやレスポンシブデザインへの前提的な対応など、お世辞にも使いやすいものとは言えませんでした。しかし、すべての記事は、みなさまに提供するために執筆されているため、みなさまにとって使いやすいものである必要があります。新しいサイトでは、読みやすいフォント、アクセスしやすい目次、人間にとってわかりやすいUrl、バージョン管理のサポート、レスポンシブデザインへの完全な対応を実装します。&lt;br /&gt;
*サポート記事の民主化 新しサイトでは、ユーザーのみなさまが記事を執筆および編集できるように、オープンソースのツールや規格を採用します。記事の執筆には、マークダウン形式を使用し、コンテンツ管理システムとしてGitHubを使用します。これにより、誤字脱字などをみなさまに直接訂正していただくことができ、記事の品質が向上します。&lt;br /&gt;
*従来の記事の保護 新しいサイトへの移行によって、貴重な従来の記事やコンテンツが失われることがないようにします。2022年末までに、ほぼすべての記事を新しいサイトへと移行させる予定です。&lt;br /&gt;
==今後のロードマップ==&lt;br /&gt;
現在、WSOFTDocsへの移行が進行しています。詳しく知るには[https://docs.wsoft.ws/blog/migration-to-docs/ WSOFTDocsの記事]を参照してください。&lt;br /&gt;
&lt;br /&gt;
==関連記事==&lt;br /&gt;
* [https://docs.wsoft.ws/blog/migration-to-docs/ WSOFTのドキュメントの WSOFT Docs への移行に関する情報-Docs]&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=1247</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=1247"/>
		<updated>2023-01-23T02:41:03Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__=AliceScriptへようこそ=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot;&lt;br /&gt;
|+style=&amp;quot;white-space:nowrap&amp;quot;|[https://docs.wsoft.ws/products/alice/download AliceScriptのダウンロード]&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|AliceScript &lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://download.wsoft.ws/WS00152 2.1]&lt;br /&gt;
|-&lt;br /&gt;
|最新安定板&lt;br /&gt;
|[https://download.wsoft.ws/WS00139 2.0]&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|[[AliceSister]]&lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://download.wsoft.ws/WS00153 2.1]&lt;br /&gt;
|-&lt;br /&gt;
|最新安定板&lt;br /&gt;
|[https://download.wsoft.gq/WS00140 2.0]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|[https://github.com/WSOFT-Project/Losetta Losetta]&lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://github.com/WSOFT-Project/Losetta/releases 0.9.16]&lt;br /&gt;
|-&lt;br /&gt;
![[AliceEULA-R|規約]]&lt;br /&gt;
![[AliceScript_Wiki:著作権|著作権情報]]&lt;br /&gt;
|}&lt;br /&gt;
{{Accordion|AliceScriptは、.NET上で動作する汎用性のあるスクリプト言語です。 AliceScriptを使用すると簡単にアプリケーションを構築することができます。 AliceScriptはC#やPythonをルーツとしているため、C、C#、JavaScript、Pyhton、PHPのプログラマーであればすぐに使いこなすことができます...|AliceScriptには、簡単に高度なアプリケーションを作成するのに役立つ機能がいくつかあります。&amp;quot;ガページコレクション&amp;quot;には到達できず、使用されていないオブジェクトによって占有されたメモリを自動的に回収することができる機能があります。 &amp;quot;デリゲート&amp;quot;には自他のオブジェクトに対して簡単に連絡を取ることができる機能があります。&amp;quot;例外処理&amp;quot;には、エラーの検出と復旧を行うためのアプローチが用意されています。 AliceScriptは&amp;quot;統合型システム&amp;quot;を備えていますから、numberやstringなどの型を含めたすべての型はルートとなる一つのVariable型から派生しています。すべての型は、一般的な操作のセットを共有していますから、すべての型を一貫した方法で操作することができます。AliceScriptについてもっと詳しく知るには、[[AliceScriptのツアー]]を参照してください。|true}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 14&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M1 2.828c.885-.37 2.154-.769 3.388-.893 1.33-.134 2.458.063 3.112.752v9.746c-.935-.53-2.12-.603-3.213-.493-1.18.12-2.37.461-3.287.811V2.828zm7.5-.141c.654-.689 1.782-.886 3.112-.752 1.234.124 2.503.523 3.388.893v9.923c-.918-.35-2.107-.692-3.287-.81-1.094-.111-2.278-.039-3.213.492V2.687zM8 1.783C7.015.936 5.587.81 4.287.94c-1.514.153-3.042.672-3.994 1.105A.5.5 0 0 0 0 2.5v11a.5.5 0 0 0 .707.455c.882-.4 2.303-.881 3.68-1.02 1.409-.142 2.59.087 3.223.877a.5.5 0 0 0 .78 0c.633-.79 1.814-1.019 3.222-.877 1.378.139 2.8.62 3.681 1.02A.5.5 0 0 0 16 13.5v-11a.5.5 0 0 0-.293-.455c-.952-.433-2.48-.952-3.994-1.105C10.413.809 8.985.936 8 1.783z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt; AliceScriptの新しいサイト:[https://docs.wsoft.ws/products/alice AliceScriptDocs]||0|24px}}&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 16&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5z&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt; [https://docs.wsoft.ws/products/alice/download AliceScriptのダウンロード] ||0|24px}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 16&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M0 2.5A1.5 1.5 0 0 1 1.5 1h11A1.5 1.5 0 0 1 14 2.5v10.528c0 .3-.05.654-.238.972h.738a.5.5 0 0 0 .5-.5v-9a.5.5 0 0 1 1 0v9a1.5 1.5 0 0 1-1.5 1.5H1.497A1.497 1.497 0 0 1 0 13.5v-11zM12 14c.37 0 .654-.211.853-.441.092-.106.147-.279.147-.531V2.5a.5.5 0 0 0-.5-.5h-11a.5.5 0 0 0-.5.5v11c0 .278.223.5.497.5H12z&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M2 3h10v2H2V3zm0 3h4v3H2V6zm0 4h4v1H2v-1zm0 2h4v1H2v-1zm5-6h2v1H7V6zm3 0h2v1h-2V6zM7 8h2v1H7V8zm3 0h2v1h-2V8zm-3 2h2v1H7v-1zm3 0h2v1h-2v-1zm-3 2h2v1H7v-1zm3 0h2v1h-2v-1z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt;  [https://docs.wsoft.ws/blog/migration-to-docs/ WSOFTのドキュメントの WSOFT Docs への移行に関する情報]||2|24px}} &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! AliceScriptの基礎 !! 主要な機能 !! 新機能&lt;br /&gt;
|-&lt;br /&gt;
| [[AliceScriptのツアー]]&lt;br /&gt;
| [[式]]&lt;br /&gt;
| [[新機能の一覧|AliceScriptの新機能]]&lt;br /&gt;
|-&lt;br /&gt;
| [[初めてのAliceScript]]&lt;br /&gt;
| [[変数]]&lt;br /&gt;
| [[破壊的変更の一覧]]&lt;br /&gt;
|-&lt;br /&gt;
! つながる&lt;br /&gt;
| [[関数リファレンス]]&lt;br /&gt;
| [[互換性|バージョンの互換性]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Alice（キャラクター）|AliceScript公式アンバサダー]]&lt;br /&gt;
| [[例外]]&lt;br /&gt;
| [[WSOFTScriptからの移行]]&lt;br /&gt;
|-&lt;br /&gt;
| [https://discord.gg/ZHyxYSeCeP Aliceプロジェクト公式コミュニティ]&lt;br /&gt;
| [[言語構造]]&lt;br /&gt;
| [[リリースノート]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=1246</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=1246"/>
		<updated>2023-01-10T07:06:38Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__=AliceScriptへようこそ=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot;&lt;br /&gt;
|+style=&amp;quot;white-space:nowrap&amp;quot;|[https://docs.wsoft.ws/products/alice/download AliceScriptのダウンロード]&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|AliceScript &lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://download.wsoft.ws/WS00152 2.1]&lt;br /&gt;
|-&lt;br /&gt;
|最新安定板&lt;br /&gt;
|[https://download.wsoft.ws/WS00139 2.0]&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|[[AliceSister]]&lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://download.wsoft.ws/WS00153 2.1]&lt;br /&gt;
|-&lt;br /&gt;
|最新安定板&lt;br /&gt;
|[https://download.wsoft.gq/WS00140 2.0]&lt;br /&gt;
|-&lt;br /&gt;
![[AliceEULA-R|規約]]&lt;br /&gt;
![[AliceScript_Wiki:著作権|著作権情報]]&lt;br /&gt;
|}&lt;br /&gt;
{{Accordion|AliceScriptは、.NET上で動作する汎用性のあるスクリプト言語です。 AliceScriptを使用すると簡単にアプリケーションを構築することができます。 AliceScriptはC#やPythonをルーツとしているため、C、C#、JavaScript、Pyhton、PHPのプログラマーであればすぐに使いこなすことができます...|AliceScriptには、簡単に高度なアプリケーションを作成するのに役立つ機能がいくつかあります。&amp;quot;ガページコレクション&amp;quot;には到達できず、使用されていないオブジェクトによって占有されたメモリを自動的に回収することができる機能があります。 &amp;quot;デリゲート&amp;quot;には自他のオブジェクトに対して簡単に連絡を取ることができる機能があります。&amp;quot;例外処理&amp;quot;には、エラーの検出と復旧を行うためのアプローチが用意されています。 AliceScriptは&amp;quot;統合型システム&amp;quot;を備えていますから、numberやstringなどの型を含めたすべての型はルートとなる一つのVariable型から派生しています。すべての型は、一般的な操作のセットを共有していますから、すべての型を一貫した方法で操作することができます。AliceScriptについてもっと詳しく知るには、[[AliceScriptのツアー]]を参照してください。|true}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 14&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M1 2.828c.885-.37 2.154-.769 3.388-.893 1.33-.134 2.458.063 3.112.752v9.746c-.935-.53-2.12-.603-3.213-.493-1.18.12-2.37.461-3.287.811V2.828zm7.5-.141c.654-.689 1.782-.886 3.112-.752 1.234.124 2.503.523 3.388.893v9.923c-.918-.35-2.107-.692-3.287-.81-1.094-.111-2.278-.039-3.213.492V2.687zM8 1.783C7.015.936 5.587.81 4.287.94c-1.514.153-3.042.672-3.994 1.105A.5.5 0 0 0 0 2.5v11a.5.5 0 0 0 .707.455c.882-.4 2.303-.881 3.68-1.02 1.409-.142 2.59.087 3.223.877a.5.5 0 0 0 .78 0c.633-.79 1.814-1.019 3.222-.877 1.378.139 2.8.62 3.681 1.02A.5.5 0 0 0 16 13.5v-11a.5.5 0 0 0-.293-.455c-.952-.433-2.48-.952-3.994-1.105C10.413.809 8.985.936 8 1.783z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt; AliceScriptの新しいサイト:[https://docs.wsoft.ws/products/alice AliceScriptDocs]||0|24px}}&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 16&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5z&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt; [https://docs.wsoft.ws/products/alice/download AliceScriptのダウンロード] ||0|24px}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 16&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M0 2.5A1.5 1.5 0 0 1 1.5 1h11A1.5 1.5 0 0 1 14 2.5v10.528c0 .3-.05.654-.238.972h.738a.5.5 0 0 0 .5-.5v-9a.5.5 0 0 1 1 0v9a1.5 1.5 0 0 1-1.5 1.5H1.497A1.497 1.497 0 0 1 0 13.5v-11zM12 14c.37 0 .654-.211.853-.441.092-.106.147-.279.147-.531V2.5a.5.5 0 0 0-.5-.5h-11a.5.5 0 0 0-.5.5v11c0 .278.223.5.497.5H12z&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M2 3h10v2H2V3zm0 3h4v3H2V6zm0 4h4v1H2v-1zm0 2h4v1H2v-1zm5-6h2v1H7V6zm3 0h2v1h-2V6zM7 8h2v1H7V8zm3 0h2v1h-2V8zm-3 2h2v1H7v-1zm3 0h2v1h-2v-1zm-3 2h2v1H7v-1zm3 0h2v1h-2v-1z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt;  [https://docs.wsoft.ws/blog/migration-to-docs/ WSOFTのドキュメントの WSOFT Docs への移行に関する情報]||2|24px}} &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! AliceScriptの基礎 !! 主要な機能 !! 新機能&lt;br /&gt;
|-&lt;br /&gt;
| [[AliceScriptのツアー]]&lt;br /&gt;
| [[式]]&lt;br /&gt;
| [[新機能の一覧|AliceScriptの新機能]]&lt;br /&gt;
|-&lt;br /&gt;
| [[初めてのAliceScript]]&lt;br /&gt;
| [[変数]]&lt;br /&gt;
| [[破壊的変更の一覧]]&lt;br /&gt;
|-&lt;br /&gt;
! つながる&lt;br /&gt;
| [[関数リファレンス]]&lt;br /&gt;
| [[互換性|バージョンの互換性]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Alice（キャラクター）|AliceScript公式アンバサダー]]&lt;br /&gt;
| [[例外]]&lt;br /&gt;
| [[WSOFTScriptからの移行]]&lt;br /&gt;
|-&lt;br /&gt;
| [https://discord.gg/ZHyxYSeCeP Aliceプロジェクト公式コミュニティ]&lt;br /&gt;
| [[言語構造]]&lt;br /&gt;
| [[リリースノート]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AE%E3%83%93%E3%83%AB%E3%83%89&amp;diff=1245</id>
		<title>パッケージのビルド</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AE%E3%83%93%E3%83%AB%E3%83%89&amp;diff=1245"/>
		<updated>2022-12-25T11:32:10Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:チュートリアル]]&lt;br /&gt;
あなたが作成したスクリプトをAlicePackage形式のアプリケーションとして展開するには、AlicePackage形式にビルドする必要があります。&lt;br /&gt;
AlicePackageは、さまざまなスクリプトやリソース、パッケージ、ライブラリをまとめた書庫と考えることができます。詳しく知るには[[AlicePackage]]の記事を参照してください。パッケージをビルドするには、次の方法のいずれかを取ることができます。&lt;br /&gt;
*IceBuildを使用する&lt;br /&gt;
*ビルドスクリプトを一から作成する&lt;br /&gt;
この記事では、まず初めに簡単にパッケージをビルドすることができるツールである、IceBuildを使用する方法を解説し、次にビルドスクリプトを一から作成してビルドする方法について触れます。&lt;br /&gt;
&lt;br /&gt;
=IceBuild=&lt;br /&gt;
AlicePackage Build Environmentは、[[AlicePackage]]形式のアプリケーションをビルドするためのプラットフォームです。IceBuildとも呼ばれるこのエンジンは、パッケージを処理およびビルドする方法を制御する方法を提供します。&lt;br /&gt;
ディレクトリに対して&amp;lt;code&amp;gt;icebuild.ice&amp;lt;/code&amp;gt;を実行するとAlicePackageを簡単に出力できます。&lt;br /&gt;
IceBuildは、[[AliceScriptのダウンロード#その他のファイルのダウンロード|AliceScriptのダウンロード]]の記事からダウンロードできます。&lt;br /&gt;
&lt;br /&gt;
IceBuildは、ビルドする前にパッケージマニフェストファイルを確認し、適切なエントリポイントが指定されているか、埋め込まれたリソースファイルが存在するかなどの基本的な事項を確認した後パッケージのビルドを開始します。ビルドスクリプトの使用が特に必要な場合を除いて、基本的にAlicePackageのビルドにはIceBuildを使用することを推奨します。&lt;br /&gt;
==コマンドラインから使用する==&lt;br /&gt;
IceBuildを使用するには、適切なコマンドライン引数とともに、適切なディレクトリ名を&amp;lt;code&amp;gt;icebuild.ice&amp;lt;/code&amp;gt;に渡します。例えば、ディレクトリ&amp;lt;code&amp;gt;TestPkg&amp;lt;/code&amp;gt;から&amp;lt;code&amp;gt;TestPkg.ice&amp;lt;/code&amp;gt;をビルドするには、次のコマンドを使用します。&lt;br /&gt;
 icebuild.ice TestPkg -out:TestPkg.ice&lt;br /&gt;
IceBuildのコマンドライン引数について詳しく知るには[[IceBuildコマンドラインリファレンス]]を参照してください。&lt;br /&gt;
&lt;br /&gt;
.iceファイルをコマンドプロンプトから実行できるようにするには、[https://docs.wsoft.ws/products/alice/tutorial/ice-to-association/ チュートリアル:iceファイルの関連付け]を参照してください。&lt;br /&gt;
&lt;br /&gt;
==AliceScriptから使用する==&lt;br /&gt;
AliceScriptからIceBuildを呼び出すこともできます。この方法を使用して、IceBuildの安定性とビルドスクリプトを一から実行することのメリットを同時に享受することができます。この方法を使用するときは、例えば次の状況が考えられます。&lt;br /&gt;
*パッケージ化する前に、ファイルまたはディレクトリに前処理することを希望している&lt;br /&gt;
*ビルドが成功したとき、出力されたパッケージを別の場所にコピーすることを希望している&lt;br /&gt;
*ビルド後に後処理を実行することを希望している&lt;br /&gt;
次の例は、AliceScriptでIceBuildを呼び出すサンプルです。&lt;br /&gt;
 import “icebuild.ice”;&lt;br /&gt;
 using WSOFT.AliceScript.IceBuild;&lt;br /&gt;
 &lt;br /&gt;
 //ソースディレクトリへのパス&lt;br /&gt;
 const SourcePath = “{ソースディレクトリへのパス}”;&lt;br /&gt;
 //出力先ファイルのパス&lt;br /&gt;
 const TargetPath = “{出力先ファイルのパス}”;&lt;br /&gt;
 &lt;br /&gt;
 //希望する場合はここに前処理を記述&lt;br /&gt;
 &lt;br /&gt;
 //ビルド実行&lt;br /&gt;
 var result = IceBuild.BuildPackage(SourcePath,TargetPath);&lt;br /&gt;
 &lt;br /&gt;
 if(result.Success)&lt;br /&gt;
  {&lt;br /&gt;
     //ビルド成功&lt;br /&gt;
     //希望する場合はビルド成功時の後処理を記述&lt;br /&gt;
     print(“パッケージのビルドが成功しました”);&lt;br /&gt;
  }&lt;br /&gt;
 else&lt;br /&gt;
  {&lt;br /&gt;
     //ビルド失敗&lt;br /&gt;
     //希望する場合はビルド失敗時の後処理を記述&lt;br /&gt;
     print(“パッケージのビルドが失敗しました”);&lt;br /&gt;
     for(var i=0;i&amp;lt;result.Errors.Length;++i)&lt;br /&gt;
      {&lt;br /&gt;
         print(“エラー {0}/{1} :{2}”,i,result.Errors.Length,result.Errors[i]);&lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
  //希望する場合はビルド完了時の後処理を記述&lt;br /&gt;
  print(“パッケージのビルドが完了しました”);&lt;br /&gt;
&lt;br /&gt;
=ビルドスクリプトを一から作成する=&lt;br /&gt;
また、&amp;lt;code&amp;gt;Alice.Packaging&amp;lt;/code&amp;gt;名前空間にあるクラスを使用して自分で一からパッケージをビルドするスクリプトを作成することもできます。&lt;br /&gt;
&lt;br /&gt;
ディレクトリをAlicePackage形式にビルドする手順は、主に次の通りです。&lt;br /&gt;
#&amp;lt;code&amp;gt;manifest.xml&amp;lt;/code&amp;gt;を含むビルド対象のディレクトリをZip形式で圧縮する&lt;br /&gt;
#1のファイルをAlicePackage形式に変換する&lt;br /&gt;
このままでもAlicePackage形式として実行可能ですが、できる限りパッケージ化前に少なくともパッケージマニフェストファイルの簡易チェックをしてください。ユーザーおよび開発者はAlicePackageに正しい内容のパッケージマニフェストファイルが含まれていることを期待しますし、実際にそのようなプログラムが流行することはAliceエコシステムの健全な成長を妨げかねません。&lt;br /&gt;
次の例はビルドスクリプトの一例です。&lt;br /&gt;
 import “Alice.IO”;&lt;br /&gt;
 import “Alice.Packaging”;&lt;br /&gt;
 &lt;br /&gt;
 const SourcePath = “{ソースディレクトリのパス}”;&lt;br /&gt;
 const TargetPath = “{出力ファイルのパス}”;&lt;br /&gt;
 　&lt;br /&gt;
 //パッケージマニフェストファイルのパス &lt;br /&gt;
 var manifestPath = Path_Combine(SourcePath,”manifest.xml”);&lt;br /&gt;
 &lt;br /&gt;
 //ソースディレクトリとパッケージマニフェストファイルの存在を確認&lt;br /&gt;
 if(!(Directory_exists(SourcePath) &amp;amp;&amp;amp; File_Exists(manifestPath)))&lt;br /&gt;
   {&lt;br /&gt;
      throw(“エラー:ソースディレクトリが存在しないか、パッケージマニフェストファイルが存在しません”);&lt;br /&gt;
      return;&lt;br /&gt;
   }&lt;br /&gt;
 //パッケージマニフェストファイルの簡易チェック&lt;br /&gt;
 if(Package_GetManifestFromFile(manifestPath) == null)&lt;br /&gt;
   {&lt;br /&gt;
      throw(“エラー:パッケージマニフェストファイルが不正な形式です”);&lt;br /&gt;
      return;&lt;br /&gt;
   }&lt;br /&gt;
 &lt;br /&gt;
 //Zipファイルの出力に使用する一時的なファイルパス&lt;br /&gt;
 var tempPath = Path_GetTempFileName(true);&lt;br /&gt;
 &lt;br /&gt;
 print(“圧縮: {0} -&amp;gt; {1}”,SourcePath,tempPath);&lt;br /&gt;
 //ソースディレクトリをZip形式で圧縮&lt;br /&gt;
 Zip_CreateFromDirectory(SourcePath,tempPath);&lt;br /&gt;
 &lt;br /&gt;
 print(“変換: {0} -&amp;gt; {1}”,tempPath,TargetPath);&lt;br /&gt;
 //圧縮したZipファイルからAlicePackageファイルを生成&lt;br /&gt;
 Package_CreateFromZipFile(tempPath,TargetPath);&lt;br /&gt;
 &lt;br /&gt;
 print(“パッケージのビルドが成功しました”);&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=MediaWiki:Common.js&amp;diff=1244</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=MediaWiki:Common.js&amp;diff=1244"/>
		<updated>2022-12-14T03:46:13Z</updated>

		<summary type="html">&lt;p&gt;Master: ページの白紙化&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=MediaWiki:Common.js&amp;diff=1243</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=MediaWiki:Common.js&amp;diff=1243"/>
		<updated>2022-12-14T03:45:45Z</updated>

		<summary type="html">&lt;p&gt;Master: ページの作成:「/* ここにあるすべてのJavaScriptは、すべてのページ読み込みですべての利用者に対して読み込まれます */ document.querySelector('body')…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* ここにあるすべてのJavaScriptは、すべてのページ読み込みですべての利用者に対して読み込まれます */&lt;br /&gt;
document.querySelector('body').insertAdjacentHTML('afterbegin','&amp;lt;header&amp;gt;&amp;lt;nav class=&amp;quot;navbar navbar-expand-lg navbar-light&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;container&amp;quot;&amp;gt;&amp;lt;a class=&amp;quot;navbar-brand&amp;quot; href=&amp;quot;https://wsoft.ws/&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;https://wsoft.ws/favicon.svg&amp;quot; alt=&amp;quot;&amp;quot; width=&amp;quot;30&amp;quot; class=&amp;quot;d-inline-block align-text-top&amp;quot; /&amp;gt;&amp;amp;nbsp;WSOFT&amp;lt;/a&amp;gt;&amp;lt;button class=&amp;quot;navbar-toggler&amp;quot; type=&amp;quot;button&amp;quot; data-bs-toggle=&amp;quot;collapse&amp;quot; data-bs-target=&amp;quot;#nav-navbar&amp;quot; aria-controls=&amp;quot;nav-navbar&amp;quot; aria-expanded=&amp;quot;false&amp;quot; aria-label=&amp;quot;Toggle navigation&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;navbar-toggler-icon&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/button&amp;gt;&amp;lt;div class=&amp;quot;collapse navbar-collapse&amp;quot; id=&amp;quot;nav-navbar&amp;quot;&amp;gt;&amp;lt;ul class=&amp;quot;navbar-nav me-auto mb-2 mb-lg-0&amp;quot;&amp;gt;&amp;lt;li class=&amp;quot;nav-item&amp;quot;&amp;gt;&amp;lt;a id=&amp;quot;nav-home&amp;quot; class=&amp;quot;nav-link&amp;quot; aria-current=&amp;quot;page&amp;quot; href=&amp;quot;https://wsoft.ws/&amp;quot;&amp;gt;Home&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li class=&amp;quot;nav-item&amp;quot;&amp;gt;&amp;lt;a id=&amp;quot;nav-about&amp;quot; class=&amp;quot;nav-link&amp;quot; href=&amp;quot;https://wsoft.ws/About&amp;quot;&amp;gt;About&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li class=&amp;quot;nav-item&amp;quot;&amp;gt;&amp;lt;a id=&amp;quot;nav-works&amp;quot; class=&amp;quot;nav-link&amp;quot; href=&amp;quot;https://wsoft.ws/Works&amp;quot;&amp;gt;Works&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li class=&amp;quot;nav-item&amp;quot;&amp;gt;&amp;lt;a id=&amp;quot;nav-docs&amp;quot; class=&amp;quot;nav-link&amp;quot; aria-current=&amp;quot;page&amp;quot; href=&amp;quot;https://docs.wsoft.ws/&amp;quot;&amp;gt;Docs&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li class=&amp;quot;nav-download&amp;quot;&amp;gt;&amp;lt;a id=&amp;quot;nav-downloads&amp;quot; class=&amp;quot;nav-link&amp;quot; href=&amp;quot;https://download.wsoft.ws&amp;quot;&amp;gt;Download&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li class=&amp;quot;nav-contact&amp;quot;&amp;gt;&amp;lt;a id=&amp;quot;nav-contact&amp;quot; class=&amp;quot;nav-link&amp;quot; href=&amp;quot;https://wsoft.ws/Contact&amp;quot;&amp;gt;Contact&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;a class=&amp;quot;navbar-text&amp;quot; href=&amp;quot;https://github.com/WSOFT-Project&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;bi bi-github&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;span class=&amp;quot;navbar-text&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;a class=&amp;quot;navbar-text&amp;quot; href=&amp;quot;https://twitter.com/WSOFT7&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;bi bi-twitter&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;span class=&amp;quot;navbar-text&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;a class=&amp;quot;navbar-text&amp;quot; href=&amp;quot;https://a.wsoft.ws/discord&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;bi bi-discord&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;span class=&amp;quot;navbar-text&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;a class=&amp;quot;navbar-text&amp;quot; href=&amp;quot;https://a.wsoft.ws/youtube&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;bi bi-youtube&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nav&amp;gt;&amp;lt;/header&amp;gt;');&lt;br /&gt;
document.querySelector('body').insertAdjacentHTML('beforeend', '&amp;lt;footer class=&amp;quot;border-top footer text-muted .position-absolute.bottom-0.start-50.translate-middle-x&amp;quot; style=&amp;quot;padding-top: 15px;&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;container&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;col-md&amp;quot;&amp;gt;&amp;lt;p&amp;gt;Copyright &amp;amp;copy; 2022 WSOFT All Rights Reserved.&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col-md&amp;quot;&amp;gt;&amp;lt;p class=&amp;quot;&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;https://docs.wsoft.ws/legal&amp;quot; id=&amp;quot;legal-link&amp;quot; class=&amp;quot;text-decoration-none text-muted&amp;quot;&amp;gt;豕慕噪雉�侭&amp;lt;/a&amp;gt;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;lt;a href=&amp;quot;https://status.wsoft.ws/&amp;quot; class=&amp;quot;text-decoration-none text-muted&amp;quot;&amp;gt;繧ｵ繝ｼ繝薙せ迥ｶ豕�&amp;lt;/a&amp;gt;&amp;amp;nbsp;|&amp;amp;nbsp;&amp;lt;a href=&amp;quot;https://wsoft.ws/Sitemap&amp;quot; class=&amp;quot;text-decoration-none text-muted&amp;quot;&amp;gt;繧ｵ繧､繝医�繝��&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;col-md-1&amp;quot;&amp;gt;&amp;lt;a data-bs-toggle=&amp;quot;modal&amp;quot; data-bs-target=&amp;quot;#wsoft-custom-modal&amp;quot;&amp;gt;&amp;lt;img class=&amp;quot;fit-picture&amp;quot; src=&amp;quot;https://wsoft.ws/WS-Emblem.png&amp;quot; height=&amp;quot;30em&amp;quot; width=&amp;quot;46.17em&amp;quot; alt=&amp;quot;Powerd by WSOFT&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/footer&amp;gt;');&lt;br /&gt;
function setLegalLink(url) {&lt;br /&gt;
    document.getElementById('legal-link').setAttribute('href', url);&lt;br /&gt;
}&lt;br /&gt;
function setLegalLink(url,text) {&lt;br /&gt;
    let a=document.getElementById('legal-link');&lt;br /&gt;
    a.setAttribute('href', url);&lt;br /&gt;
    a.innerHTML=text;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=1242</id>
		<title>メインページ</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8&amp;diff=1242"/>
		<updated>2022-11-21T05:03:19Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__=AliceScriptへようこそ=&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot;&lt;br /&gt;
|+style=&amp;quot;white-space:nowrap&amp;quot;|[[AliceScriptのダウンロード]]&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|AliceScript &lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://download.wsoft.ws/WS00003 GM]&lt;br /&gt;
|-&lt;br /&gt;
|最新安定板&lt;br /&gt;
|[https://download.wsoft.ws/WS00003 GM]&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|[[AliceSister]]&lt;br /&gt;
|-&lt;br /&gt;
|最新版&lt;br /&gt;
|[https://download.wsoft.gq/WS00004 GM]&lt;br /&gt;
|-&lt;br /&gt;
|最新安定板&lt;br /&gt;
|[https://download.wsoft.gq/WS00004 GM]&lt;br /&gt;
|-&lt;br /&gt;
![[AliceEULA-R|規約]]&lt;br /&gt;
![[AliceScript_Wiki:著作権|著作権情報]]&lt;br /&gt;
|}&lt;br /&gt;
{{Accordion|AliceScriptは、.NET上で動作する汎用性のあるスクリプト言語です。 AliceScriptを使用すると簡単にアプリケーションを構築することができます。 AliceScriptはC#やPythonをルーツとしているため、C、C#、JavaScript、Pyhton、PHPのプログラマーであればすぐに使いこなすことができます...|AliceScriptには、簡単に高度なアプリケーションを作成するのに役立つ機能がいくつかあります。&amp;quot;ガページコレクション&amp;quot;には到達できず、使用されていないオブジェクトによって占有されたメモリを自動的に回収することができる機能があります。 &amp;quot;デリゲート&amp;quot;には自他のオブジェクトに対して簡単に連絡を取ることができる機能があります。&amp;quot;例外処理&amp;quot;には、エラーの検出と復旧を行うためのアプローチが用意されています。 AliceScriptは&amp;quot;統合型システム&amp;quot;を備えていますから、numberやstringなどの型を含めたすべての型はルートとなる一つのVariable型から派生しています。すべての型は、一般的な操作のセットを共有していますから、すべての型を一貫した方法で操作することができます。AliceScriptについてもっと詳しく知るには、[[AliceScriptのツアー]]を参照してください。|true}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 14&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M1 2.828c.885-.37 2.154-.769 3.388-.893 1.33-.134 2.458.063 3.112.752v9.746c-.935-.53-2.12-.603-3.213-.493-1.18.12-2.37.461-3.287.811V2.828zm7.5-.141c.654-.689 1.782-.886 3.112-.752 1.234.124 2.503.523 3.388.893v9.923c-.918-.35-2.107-.692-3.287-.81-1.094-.111-2.278-.039-3.213.492V2.687zM8 1.783C7.015.936 5.587.81 4.287.94c-1.514.153-3.042.672-3.994 1.105A.5.5 0 0 0 0 2.5v11a.5.5 0 0 0 .707.455c.882-.4 2.303-.881 3.68-1.02 1.409-.142 2.59.087 3.223.877a.5.5 0 0 0 .78 0c.633-.79 1.814-1.019 3.222-.877 1.378.139 2.8.62 3.681 1.02A.5.5 0 0 0 16 13.5v-11a.5.5 0 0 0-.293-.455c-.952-.433-2.48-.952-3.994-1.105C10.413.809 8.985.936 8 1.783z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt; AliceScriptの新しいサイト:[https://docs.wsoft.ws/alice AliceScriptDocs]||0|24px}}&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 16&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5z&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708l3 3z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt; [[AliceScriptのダウンロード]]||0|24px}}&amp;lt;br&amp;gt;&lt;br /&gt;
{{Alert|&amp;lt;html&amp;gt;&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; width=&amp;quot;24&amp;quot; height=&amp;quot;24&amp;quot; fill=&amp;quot;currentColor&amp;quot; class=&amp;quot;bi bi-download&amp;quot; viewBox=&amp;quot;0 0 16 16&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M0 2.5A1.5 1.5 0 0 1 1.5 1h11A1.5 1.5 0 0 1 14 2.5v10.528c0 .3-.05.654-.238.972h.738a.5.5 0 0 0 .5-.5v-9a.5.5 0 0 1 1 0v9a1.5 1.5 0 0 1-1.5 1.5H1.497A1.497 1.497 0 0 1 0 13.5v-11zM12 14c.37 0 .654-.211.853-.441.092-.106.147-.279.147-.531V2.5a.5.5 0 0 0-.5-.5h-11a.5.5 0 0 0-.5.5v11c0 .278.223.5.497.5H12z&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;path d=&amp;quot;M2 3h10v2H2V3zm0 3h4v3H2V6zm0 4h4v1H2v-1zm0 2h4v1H2v-1zm5-6h2v1H7V6zm3 0h2v1h-2V6zM7 8h2v1H7V8zm3 0h2v1h-2V8zm-3 2h2v1H7v-1zm3 0h2v1h-2v-1zm-3 2h2v1H7v-1zm3 0h2v1h-2v-1z&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/svg&amp;gt;&amp;lt;/html&amp;gt;  [https://docs.wsoft.ws/blog/migration-to-docs/ WSOFTのドキュメントの WSOFT Docs への移行に関する情報]||2|24px}} &lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! AliceScriptの基礎 !! 主要な機能 !! 新機能&lt;br /&gt;
|-&lt;br /&gt;
| [[AliceScriptのツアー]]&lt;br /&gt;
| [[式]]&lt;br /&gt;
| [[新機能の一覧|AliceScriptの新機能]]&lt;br /&gt;
|-&lt;br /&gt;
| [[初めてのAliceScript]]&lt;br /&gt;
| [[変数]]&lt;br /&gt;
| [[破壊的変更の一覧]]&lt;br /&gt;
|-&lt;br /&gt;
! つながる&lt;br /&gt;
| [[関数リファレンス]]&lt;br /&gt;
| [[互換性|バージョンの互換性]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Alice（キャラクター）|AliceScript公式アンバサダー]]&lt;br /&gt;
| [[例外]]&lt;br /&gt;
| [[WSOFTScriptからの移行]]&lt;br /&gt;
|-&lt;br /&gt;
| [https://discord.gg/ZHyxYSeCeP Aliceプロジェクト公式コミュニティ]&lt;br /&gt;
| [[言語構造]]&lt;br /&gt;
| [[リリースノート]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
	<entry>
		<id>https://alice.wsoft.ws/index.php?title=%E6%95%B0%E5%80%A4%E5%9E%8B%E3%81%AE%E8%A8%88%E7%AE%97%E8%AA%A4%E5%B7%AE&amp;diff=1241</id>
		<title>数値型の計算誤差</title>
		<link rel="alternate" type="text/html" href="https://alice.wsoft.ws/index.php?title=%E6%95%B0%E5%80%A4%E5%9E%8B%E3%81%AE%E8%A8%88%E7%AE%97%E8%AA%A4%E5%B7%AE&amp;diff=1241"/>
		<updated>2022-11-20T05:20:03Z</updated>

		<summary type="html">&lt;p&gt;Master: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:チュートリアル]]&lt;br /&gt;
AliceScriptの数値型は、倍精度浮動小数点数数値型と定められており、この規格はIEEE754として標準化されています。&lt;br /&gt;
しかしこの数値型で小数の計算をしているとき、その計算結果が期待通りでないことがあります。この記事では、その理由について説明します。&lt;br /&gt;
=計算誤差の例=&lt;br /&gt;
 0.1 + 0.2 == 0.3&lt;br /&gt;
数学では、上記の式は正しく&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;と評価されますし、ほとんどの開発者も、それが正しいことを期待します。&lt;br /&gt;
では、AliceScriptでこの式を評価してみます。&lt;br /&gt;
 print(0.1 + 0.2 == 0.3);&lt;br /&gt;
このコードを実行すると、&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;が出力されます。&lt;br /&gt;
=理由=&lt;br /&gt;
これらの計算誤差はバグではありません。AliceScriptの数値型のような浮動小数点数数値型は、値を2進数で格納していますが、ほとんどの10進数の小数は2進数で表すことができず、その近似値として表現されます。近似値の誤差が例に示したような計算誤差として現れます。&lt;br /&gt;
&lt;br /&gt;
知的好奇心旺盛なあなたのために、もう少し説明します。例えば10進数の&amp;lt;code&amp;gt;0.1&amp;lt;/code&amp;gt;を2進数に変換すると&amp;lt;code&amp;gt;0.0001100110011…&amp;lt;/code&amp;gt;となり、&amp;lt;code&amp;gt;0011&amp;lt;/code&amp;gt;が永遠と循環します。そのため&amp;lt;code&amp;gt;0.1&amp;lt;/code&amp;gt;を倍精度浮動小数点数数値型に格納するには、適当な桁で丸める必要があります。このとき、最も近い偶数に値を丸めます。その結果として&amp;lt;code&amp;gt;0.1&amp;lt;/code&amp;gt;は数値型では2進数で&amp;lt;code&amp;gt;0.0001100110011001100110011001100110011001100110011001101&amp;lt;/code&amp;gt;となります。これを10進数に戻す&amp;lt;code&amp;gt;0.1000000000000000055511151231257827021181583404541015625&amp;lt;/code&amp;gt;となり、&amp;lt;code&amp;gt;0.1&amp;lt;/code&amp;gt;ではなくなります。&lt;br /&gt;
&lt;br /&gt;
ただし整数は、有効桁数15桁の範囲内であれば、正確に格納できます。また小数であっても、k/2^n (k,nは整数)で表すこともできる小数は2進数で表現できるため、正確に格納できます。&lt;br /&gt;
&lt;br /&gt;
なおこのような誤差は、AliceScript固有のものではありません。IEEE 754の2進浮動小数点形式を採用しているシステムでは、同じことが起こりえます。&lt;br /&gt;
&lt;br /&gt;
=回避策=&lt;br /&gt;
==許容範囲を決めて値を比較する==&lt;br /&gt;
二つの浮動小数点数数値型数を比較するとき、例えばそれらが等しいかを調べるときに&amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt;を使うのは危険です。両者が全く等しい場合のみ等しいと判断するのではなく、「両者の差の絶対値がある程度であれば等しいと認める」など許容範囲を決めて比較する方が安全です。次の例は、許容範囲を定めt、&amp;lt;code&amp;gt;0.000001&amp;lt;/code&amp;gt;未満の差の場合に等しいと判断します。&lt;br /&gt;
 import “Alice.Math”;&lt;br /&gt;
 &lt;br /&gt;
 ///二つの小数が等しいと認められるかどうかを評価します&lt;br /&gt;
 ///パラメータ a:一方の値&lt;br /&gt;
 ///         b:もう一方の値&lt;br /&gt;
 /// tolerance:許容できる誤差の最大の値(この数値は常に正)     &lt;br /&gt;
 function NumEqual(number a,number b,number tolerance)&lt;br /&gt;
  {&lt;br /&gt;
     return (math_abs(a - b) &amp;lt; tolerance);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
 var numA = 0.1 + 0.2;&lt;br /&gt;
 var numB = 0.3;&lt;br /&gt;
 ///許容範囲&lt;br /&gt;
 var tolerance = 0.000001;&lt;br /&gt;
 if(NumEqual(numA,numB,tolerance))&lt;br /&gt;
  {&lt;br /&gt;
     print(“二値は等しいと認められました”);&lt;br /&gt;
  }&lt;br /&gt;
==一度整数にした後で変換する==&lt;br /&gt;
他には、例えば一度整数にしてから計算する方法も考えられます。次の例では、二つの数を整数にすることができる数&amp;lt;code&amp;gt;dis ** 10&amp;lt;/code&amp;gt;を求めて二数を整数にした後、計算を行うことで誤差を防ぎます。ただしこの場合でも、有効数字15桁以上の数は正確に扱うことができません。&lt;br /&gt;
 import “Alice.Math”;&lt;br /&gt;
 &lt;br /&gt;
 ///与えられた数の小数点以下の桁数を取得します&lt;br /&gt;
 function GetDisitsUnder1(number num)&lt;br /&gt;
  {&lt;br /&gt;
     var priceString = price.ToString().TrimEnd('0');&lt;br /&gt;
     int index = priceString.IndexOf('.');&lt;br /&gt;
     if (index == -1){return 0;}&lt;br /&gt;
     return priceString.Substring(index + 1).Length;&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
 ///二つの小数が等しいかどうかを判断します&lt;br /&gt;
 function NumEqual(number numA,numbner numB)&lt;br /&gt;
  {&lt;br /&gt;
     //numA,numBの小数点以下の桁数(すなわち、10の何乗倍すれば整数になるか)&lt;br /&gt;
     var nAd = GetDisitsUnder1(numA);&lt;br /&gt;
     var nBd = GetDisitsUnder1(numB);&lt;br /&gt;
     //二つの小数の小数点以下桁数のうち多い方&lt;br /&gt;
     var dis = math_max(nAd,nBd);&lt;br /&gt;
     &lt;br /&gt;
     //numA,numBを整数化したもの&lt;br /&gt;
     var rA = numA * (dis ** 10);&lt;br /&gt;
     var rB = numB * (dis ** 10);&lt;br /&gt;
     &lt;br /&gt;
     return (rA == rB);&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
 ///二つの小数の和を求めます&lt;br /&gt;
 function Sum(number numA,number numB)&lt;br /&gt;
  {&lt;br /&gt;
     //numA,numBの小数点以下の桁数(すなわち、10の何乗倍すれば整数になるか)&lt;br /&gt;
     var nAd = GetDisitsUnder1(numA);&lt;br /&gt;
     var nBd = GetDisitsUnder1(numB);&lt;br /&gt;
     //二つの小数の小数点以下桁数のうち多い方&lt;br /&gt;
     var dis = math_max(nAd,nBd);&lt;br /&gt;
     &lt;br /&gt;
     //numA,numBを整数化したもの&lt;br /&gt;
     var rA = numA * (dis ** 10);&lt;br /&gt;
     var rB = numB * (dis ** 10);&lt;br /&gt;
     //整数化されたものの計算結果&lt;br /&gt;
     var result = rA + rB;&lt;br /&gt;
 &lt;br /&gt;
     return (result / (dis ** 10));&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
 print(NumEqual(0.1+0.2,0.3));//出力例:true&lt;br /&gt;
 print(Sum(0.1,0.2));//出力例:0.3&lt;/div&gt;</summary>
		<author><name>Master</name></author>
	</entry>
</feed>