【cnode源码】【ene附图源码公式】【sg ndb公式源码】long 源码

2024-12-29 15:44:39 来源:adx源码的用法 分类:休闲

1.Long和int比较用==还是源码用equals
2.《Lua5.4 源码剖析——基本数据类型 之 数字类型》

long 源码

Long和int比较用==还是用equals

       应该用==,如下实测:

class Test

       {

        public static void main(String[] args)

        {

        Long L = new Long(2);

        System.out.println("L\ti\tL==i\tL.equals(i)");

        for(int i=0; i<5; i++) {

        System.out.printf("%d\t%d\t%b\t%b\n",源码 L, i, L==i, L.equals(i));

        }

        }

       }

       程序运行结果如下:

       为什么会这样?只需看看Long.equals()的源码就知道了:

public final class Long extends Number implements Comparable<Long> {

           // 省略...

           

           private final long value;

           

           public Long(long value) {

               this.value = value;

           }    

           

           public boolean equals(Object obj) {

               if (obj instanceof Long) {

                   return value == ((Long)obj).longValue();

               }

               return false;

           }

           // 省略...

       }

       L.equals(i)执行时,i被转为某种对象类型后,源码被equals()方法参数obj引用,源码if (obj instanceof Long)测试失败,源码所以直接return false;

       这里obj所引用的源码cnode源码实际类型到底是什么?可以通过源码调试看出(Eclipse能正确找到源码路径才行)。也可以通过下面的源码程序模拟:

class FooLong

       {

        private final long value;

        public long longValue() {  return value; }

        public FooLong(long value) {  this.value = value; }

        public boolean equals(Object obj) {

        System.out.println(obj.getClass());

        if(obj instanceof Long) {  

        return value == ((Long)obj).longValue();

        }

        return false;

        }

       }

       class FooTest

       {

        public static void main(String[] args)

        {

        FooLong f = new FooLong();

        System.out.println(f.equals());

        System.out.println(f.equals((long)));

        }

       }

       运行结果如下:

       可以看到,填int的源码f.equals(),obj引用时,源码实际引用的源码是java.lang.Integer类型

       long时,实际引用的源码是java.long.Long类型

《Lua5.4 源码剖析——基本数据类型 之 数字类型》

       数字类型在编程中分为整数和浮点数两种。在Lua语言的源码5.3版本之前,所有数字都被底层实现为浮点数,源码整数的源码概念并未独立出来,而是源码ene附图源码公式通过浮点数的IEEE表示法进行表示与数据存储。这样,在进行整数运算时,可能会在多次运算后累积产生出意外的浮点误差。因此,从Lua5.3版本开始,Lua引入了对整数的支持,使其不再依赖于浮点数进行表示,sg ndb公式源码并且支持位运算等整数运算操作符。

       在Lua语言中,每个基础对象需要存储其类型标识,这个标识在源码《lua.h》中定义为tt,数字类型的tt枚举值为LUA_TNUMBER(对应数字3)。由于数字类型分为整型和浮点型,它们通过类型变体来区分。强制加群源码在源码《lobject.h》中,类型变体LUA_VNUMINT表示整型,而LUA_VNUMFLT表示浮点型。

       数字类型在TValue中定义了Value字段,这个字段包含i和n两个字段,用于分别存储整型和浮点型的数值。在历史原因的mysql官方 源码下载影响下,lua_Number并不是指所有数字类型,而是专门指浮点类型;lua_Integer则专门指整型。因此,设置整数或浮点数时,需要先设置Value字段中的n字段(整型)或i字段(浮点型),然后使用settt_宏设置type tag(tt)字段为对应值LUA_VNUMFLT或LUA_VNUMINT。

       在底层,数字类型的数据类型具体表现为lua_Integer和lua_Number。在源码《lua.h》中声明,lua_Number为LUA_NUMBER,lua_Integer为LUA_INTEGER。深入学习它们的定义,可以看到整型有int、long、long long三种类型,浮点型有float、double、long double三种类型。Lua5.4的默认配置中,整型使用long long类型,浮点型使用double类型。在Windows平台上,整型使用__int类型。

       至此,数字类型的讲解就告一段落。希望本文对理解Lua语言中的数字类型有所帮助。

更多资讯请点击:休闲

推荐资讯

“铁拳”行动 | 山东公布6起民生领域案件查办典型案例

中国消费者报济南讯记者尹训银)化肥作为粮食的“粮食”,不仅关系粮食安全,更关系国计民生和社会稳定。2023年,山东省市场监管局在全省持续开展民生领域案件查办“铁拳”行动,聚焦农资市场,依法严厉打击制售

食安問題連環爆!營養師激推「吃3類食物」加速身體排毒

最近食安問題爆發,大家人心惶惶,畢竟外食人口居多,有時候真的難免會攝取到有毒的食材,這些遭汙染的食品吃進肚子中要怎麼辦?後續有什麼方法可以應對呢?排毒多攝取3大類抗氧化食物營養師劉怡里建議,可以多攝取

伍佰賭城開唱! 歌迷喊「不準下班」唱滿3小時

「搖滾之神」伍佰,近日到美國拉斯維加斯開唱,距離上一次到賭城開唱已經睽違24年,讓歌迷嗨翻天,伍佰也很有誠意唱了整整3小時,還連兩度安可,最終演唱會結束後,伍佰人都離開了,歌迷仍捨不得離去,一邊散場一