JAVA、python、Go的复制语句

移望yuan · · 494 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

一、JAVA的自增、自减语法

      //对自增(减)变量来说,"a++"和"++a"是一样的
        int a = 100;
        System.out.println("a:" + a);

        a++;
        System.out.println("a:" + a);  //输出自加后的结果:101

        int c = a++;  //先赋值再自加,c的结果:101,a的结果102
        System.out.println("a:"+a+" c:" + c);

        c = a + 1;    //这个是正常的运算
        System.out.println("a:"+a+" c:" + c);

        int d = ++a;  //先自加再赋值,d的结果为103,a的结果为103
        System.out.println("a:"+a+"  d:" + d);

二、python的自增、自减语法

Python中是没有++和--的。那么要实现自增和自减的话,可以使用如下操作:

a = a + 1
或
a += 1

原因是python中的数字类型是不可变数据。也就是数字类型数据在 内存 中是不会发生改变,当变量值发生改变时,会新申请一块内存赋值为新值,然后将变量指向新的内存地址。
所以对于python来说,是没有自增一说的。

>>> a = 10
>>> id(a)
140530470127960
>>> a += 1
>>> id(a)
140530470129080

+= 是改变变量,相当于重新生成一个变量,把操作后的结果赋予这个新生成的变量。
++ 是改变了对象本身,而不是变量本身,即改变数据地址所指向的内存中的内容。

int理论上是每次赋值都创建一个新对象的。但是由于使用频繁,为了提升性能避免浪费,所有 python 有个 整数池,默认 [-5, 256] 的数字都属于这个整数池,这些每次赋值的时候,是取得池中的整数对象。但是其他的除外,如下:

>>> a = 5
>>> b = 5
>>> id(a)
140530470128360
>>> id(b)
140530470128360
>>> a is b
True

>>> c = 257
>>> d = 257
>>> id(c)
140530470136432
>>> id(d)
140530470136408

有时候在 Python 中看到存在 ++i 这种形式,这其实不是自增,只是简单的表示正负数的正号而已。正正得正,负负得正,所以 ++i 和 --i 都是 i 。

三、go的自增、自减语法

在Go中 ++ -- 只能作为语句而非表达式。

示例:

a := 1
a ++  // 注意:不能写成 ++ a 或 -- a 必须放在右边使用
// b := a++ // 此处为错误的用法,不能写在一行,要单独作为语句使用

fmt.Println(a) // 2

有疑问加站长微信联系(非本文作者)

本文来自:51CTO博客

感谢作者:移望yuan

查看原文:JAVA、python、Go的复制语句

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

494 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传