tolua#的Examples-16_Int64

    string script =
        @"
            function TestInt64(x)
                x = x + 789                
                local low, high = int64.tonum2(x)                
                print('x value is: '..int64.tostring(x)..':'..tostring(x)..' low is: '.. low .. ' high is: '..high.. ' type is: '.. tolua.typename(x))          
                local y = int64.new(1,2)                
                local z = int64.new(1,2)
                
                if y == z then
                    print('int64 equals is ok, value: '..int64.tostring(y))
                end

                x = int64.new(123)                  
            
                if int64.equals(x, 123) then
                    print('int64 equals to number ok')
                else
                    print('int64 equals to number failed')
                end

                x = int64.new('78962871035984074')
                print('int64 is: '..tostring(x))

                return y
            end
        ";

    void Start()
    {
#if UNITY_5        
        Application.logMessageReceived += ShowTips;
#else
        Application.RegisterLogCallback(ShowTips);
#endif
        new LuaResLoader();
        LuaState lua = new LuaState();
        lua.Start();
        lua.DoString(script);

        LuaFunction func = lua.GetFunction("TestInt64");
        func.BeginPCall();
        func.PushInt64(9223372036854775807 - 789);
        func.PCall();
        LuaInteger64 n64 = func.CheckInteger64();
        Debugger.Log("int64 return from lua is: {0}", n64);
        func.EndPCall();
        func.Dispose();
        func = null;

        lua.CheckTop();
        lua.Dispose();
        lua = null;
    }

lua5.1.x都是不支持int64的,之前也写过帖子可以通过各种手段来实现,但是总体来说都不是很爽,lua5.1.4还可以通过打补丁完成,而luajit完全就没办法了,又不愿意升级lua5.3,值得庆幸的是tolua#支持了这一功能,增添了int64类,再次膜拜蒙哥神功,这个例子主要是演示如何在lua中使用int64进行计算操作。

[本日志由 admin 于 2016-03-20 10:15 PM 更新]
上一篇: tolua#的Examples-15_ProtoBuffer
下一篇: tolua#的Examples-17_Inherit
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭