1 名前:デフォルトの名無しさん mailto:sage [2013/03/10(日) 15:10:32.28 .net] LuaやSquirrelやAngelScriptなどアプリケーションへの組み込み用途で 使われるプログラミング言語についてのスレッドです まとめwiki(なにか質問する前に必ずみること!) wikiwiki.jp/lua/ その他の参考URLは>2から ■前スレ 【Lua】組み込み系言語総合 その5【Squirrel】 toro.2ch.net/test/read.cgi/tech/1321063450/ ■過去スレ その4 hibari.2ch.net/test/read.cgi/tech/1301414458/ その3 hibari.2ch.net/test/read.cgi/tech/1272643397/ その2 pc12.2ch.net/test/read.cgi/tech/1243210301/ その1 pc12.2ch.net/test/read.cgi/tech/1205208141/ プログラミング言語 Lua その3 pc11.2ch.net/test/read.cgi/tech/1160799232/
1010 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 14:25:23.06 ID:t8yALPnl.net] 意味がわからん ビット演算は5.3で採用されたし、doubleとintはスクリプトからは意識されない 連想配列と統一するために捨てたオブジェクトとは何のことだ? 連想配列とdoubleの統一性のなさとは何だ?メタテーブルがあり演算子の定義もできるのに
1011 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 14:41:12.52 ID:62PEa5hX.net] ほんとオブジェクトって何のことだろうね 意味がわからんから捨てる
1012 名前:987 mailto:sage [2016/09/22(木) 14:44:50.84 ID:Ru9TIBDm.net] >>994 判りにくくてスマン。
1013 名前:number.to_binary_ulongは定義自体が出来ないです >type test.lua string.to_number_ulong = function(self) --←これは定義できる --(略)4バイトの文字列をunsigned longに変換するコード end number.to_binary_ulong = function(self) --←これは定義できない --(略)unsigned longを4バイトの文字列に変換するコード end s = "\226\167\100\53" print(s:to_number_ulong()) --バイナリ文字列を数字に変換(意図した動作) n = 895789026 print(n:to_binary_ulong()) --こんな感じで使いたい。数字をバイナリ文字列に変換 >luajit test.lua luajit: test.lua:4: attempt to index global 'number' (a nil value) stack traceback: test02.lua:4: in main chunk [C]: at 0x004020e0 リファレンスマニュアルがショボいためにググってばっかりで捗らん・・・ [] [ここ壊れてます]
1014 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 15:27:10.87 ID:62PEa5hX.net] 歴史的に、演算子といえばnumberの演算子しかなかった 昔の言語にはstringの演算子がなかったからstringには関数が必要 numberにはあまり必要なかった その影響で string.* という関数は色々あるが number.* は一個もない
1015 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 15:31:44.15 ID:t8yALPnl.net] >>998 ああそういう意味か "string" は文字列型のメタ __index にも登録してあるから、それでいける | The string library ... also sets a metatable for strings ... "number" は初期設定では存在しないが、自分で定義して lua_setmetatable (in C) なり debug.setmetatable (in Lua) で 数値型のメタ __index として登録すれば、やりたかった動作になるだろう このあたりは伝統的にnumberのメソッドよりも、mathモジュールやstring.formatで賄うことが多かったから仕方ない ホスト側の作成者の美的センスで適当に改造すべき箇所なんだろうな
1016 名前:987 mailto:sage [2016/09/22(木) 16:31:47.44 ID:Ru9TIBDm.net] >>1000 ありがとう。リファレンスマニュアルにも使用例がないので 試行錯誤してこんな感じになった。まぁ動けばいいか >type test.lua number = {} debug.setmetatable(0, {__index = number}) number.to_binary_ulong = function(self) --(略)unsigned longを4バイトの文字列に変換するコード end n = 1684234849 print(n:to_binary_ulong()) >luajit test.lua abcd
1017 名前:987 mailto:sage [2016/09/22(木) 18:13:01.03 ID:Ru9TIBDm.net] >>996 の >メタテーブルがあり演算子の定義もできる を見て思うところがあったのでリファレンスマニュアルを見たけど__addくらいしか書いていなくて何を定義できるのか判らない ググってみるとメタテーブルチュートリアル的なのが出てくるけど[]とか[]=とかの定義は出来ないっぽい? これを定義できると配列みたいな動作をするオブジェクトの使い勝手が良くなるんだけどな
1018 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 18:24:14.43 ID:t8yALPnl.net] 新スレ echo.2ch.net/test/read.cgi/tech/1474536226/l50
1019 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています