Perl中的自增、自减
自增和自减
perl也支持数值类型的自增和自减操作。不仅如此,还支持字符、字符串的自增、自减。
- 如果自增(++)和自减(--)符号放在数值的前面,则先增减,再返回;
- 如果自增(++)和自减(--)符号放在数值的后面,则先返回,再增减;
- 如果自增、自减操作是独立的一句表达式,则自增、自减符号放在前面或后面都是等价的;
$a=10;
# 以下4句为独立的自增、自减表达式,自增自减符号的位置无所谓
$a++; # 先返回10,再递增为11
++$a; # 先递增为12,再返回12
--$a; # 先递减为11,再返回11
$a--; # 先返回11,再递减为10
# 以下4句为非独立的自增、自减表达式,自增自减符号的位置有影响
$m = $a++; # 先返回10赋值给$m,然后$a再递增为11,所以执行结束后$m=10,$a=11
$m = ++$a; # 先递增为12,再赋值给$m,所以执行结束后$m=12,$a=12
$m = --$a; # 先递减为11,再赋值给$m,所以执行结束后$m=11,$a=11
$m = $a--; # 先返回11赋值给$m,然后$a再递减为10,所以执行结束后$m=11,$a=10
对于字符和字符串的自增、自减。规则是从最后一个字符按照ascii顺序向上进一位,也就是A-->Z,a-->z,如果是Z或z字符,再进一位表示多加一个字符。看示例更容易理解。
$a="b"; say ++$a;
c
$a="ba"; say ++$a;
bb
$a="bz"; say ++$a;
ca
$a="Az"; say ++$a;
Ba
$a="bZ"; say ++$a;
cA
$a="zz"; say ++$a;
aaa
Perl中的自增、自减的更多相关文章
- 【Java】【4】关于Java中的自增自减
摘要:理解j = j++与j = ++j的区别:正确用法:直接用j++,不要用前两种 正文: import java.util.*; public class Test{ public static ...
- Java中的自增自减
情况①: for (int i = 0; i < 100; i++) { j = 1 + j++; } System.out.println(j); 结果是 0 !! 这是由于在进行后自增/自减 ...
- C# 中重载自增自减操作符的具体运算原理 ----从C++程序员的角度看C#自增操作符重载的实质
看了看C#的运算符重载,发现与C++打不相同.刚刚被C#的自增操作符坑了,现在来分享一下. 先定义一个类 class A { public int i; public A(int I) { i = I ...
- python自增自减?赋值语句返回值?逗号表达式?
咳咳,直接进入正题吧. 自增自减(++/--),以及赋值语句,还有逗号表达式都是在C/C++中常见的运算符或表达式. 熟悉C/C++的小伙伴们都知道,在C/C++中: 自增自减(前缀/后缀)运算符将实 ...
- 023 01 Android 零基础入门 01 Java基础语法 03 Java运算符 03 算术运算符之——自增自减运算符
023 01 Android 零基础入门 01 Java基础语法 03 Java运算符 03 算术运算符之--自增自减运算符 本文知识点:Java算术运算符中的自增自减运算符 自增自减运算符 之前我们 ...
- C语言:自增 自减
一个整数类型的变量自身加 1 可以这样写: a = a + 1; 或者 a += 1; 不过,C语言还支持另外一种更加简洁的写法,就是: a++; 或者 ++a; 这种写法叫做自加或自增,意思很明确, ...
- [Swift]在Swift中实现自增(++)、自减(--)运算符:利用extension扩展Int类
自增(++).自减(--)运算符主要用在For循环中,Swift有自己更简易的循环遍历方法,而且类似x- ++x这种代码不易维护. Swift为了营造自己的编码风格,树立自己的代码精神体系,已经不支持 ...
- c中自增自减的妙用
#include <stdio.h> int main() { ; printf("%d,%d,%d,%d",i++;i--;++i;--i); /*运算从右往左运算 ...
- 以php中的自增自自减运算符操作(整型,浮点型,字符串型,布尔型,空类型)数据
// 环境 // // php版本 // PHP 7.0.33-0+deb9u1 (cli) (built: Dec 7 2018 11:36:49) ( NTS ) // Copyright (c) ...
随机推荐
- document,element,node方法
document方法: getElementById(id) 返回指定结点的引用 getElementsByTagName_r(name) ...
- 微信内转发APP及h5类域名怎么做到防封防拦截,微信域名防红技术原理
我们常常遇到自己正规的网站链接,无端被微信拦截,大家都为这问题苦恼不已.但凡想使用微信来推广产品或者从事活动营销的用户,就一定会遇到域名被微信拦截甚至封停的情况.域名没被封过,那你的营销人生肯定是不完 ...
- 升讯威微信营销系统开发实践:(2)中控服务器的详细设计( 完整开源于 Github)
GitHub:https://github.com/iccb1013/Sheng.WeixinConstruction因为个人精力时间有限,不会再对现有代码进行更新维护,不过微信接口比较稳定,经测试至 ...
- 816. Ambiguous Coordinates
We had some 2-dimensional coordinates, like "(1, 3)" or "(2, 0.5)". Then, we re ...
- MySQL Schema与数据类型的优化
选择优化的数据类型: 1. 更小的通常更好: 一般情况下,应该尽量使用可以正确存储数据的最小数据类型.更小的数据类型通常更快,因为他们占用更少的磁盘,内存和cpu缓存,并且处理时需要的cpu周期也更少 ...
- Javascript高级编程学习笔记(68)—— 事件(12)设备事件
设备事件 随着智能手机与平板电脑的普及,为了更好地让用户与这些设备进行交互 浏览器引入了一种新的方式,而一类新的事件也应运而生,这就是设备事件 W3C从2011年开始制定关于设备事件的草案 下面将会介 ...
- Android7.0适配APK安装
Android7.0适配APK安装 适配的原因 对于面向Android7.0的应用,Android框架执行的StrictMode API政策禁止在您的应用外部公开file://URL.如果一项包含文件 ...
- 微信小程序信息展示列表
微信小程序信息展示列表 效果展示: 代码展示: wxml <view class="head"> <view class="head_item" ...
- 小程序页面跳转传参-this和that的区别-登录流程-下拉菜单-实现画布自适应各种手机尺寸
小程序页面跳转传参 根目录下的 app.json 文件 页面文件的路径.窗口表现.设置网络超时时间.设置多 tab { "pages": [ "pages/index/i ...
- outline和outline-offset属性实现简单的缝边效果
如果现在有个需求,让你实现下面的样式,你会怎么做呢? 我首先想到的是用 border + box-shadow 实现,代码如下 div { margin: 50px auto; width: 200p ...