当前位置: 首页 > wzjs >正文

微网站模板制作服务器维修

微网站模板制作,服务器维修,怎么用小程序做微网站,在dw上做网站首页导航栏目录 为什么有的编程语言允许字符串和整数相加? 字符串和整数比较 字符串拼接 字符串字面量自动连接 格式串详解 示例: 输出右对齐宽度为8个字符整形数据 格式串语法 浮点数小数位 不同进制 输出地址 带前缀的格式串 格式串大小写 看起来另类的格式串 格式串补零…

目录

为什么有的编程语言允许字符串和整数相加?

字符串和整数比较

字符串拼接

字符串字面量自动连接

格式串详解

示例: 输出右对齐宽度为8个字符整形数据

格式串语法

浮点数小数位

不同进制

输出地址

带前缀的格式串

格式串大小写

看起来另类的格式串

格式串补零

宽度和精度可被指定?

废弃的格式符

字面量

字面量使用广泛

字面量默认类型

超过默认类型范围的字面量


为什么有的编程语言允许字符串和整数相加?

C#/Java语言为了方便字符串拼接,字符串和其他类型执行加法,其它类型会隐式自动转换成字符串,最后是拼接的结果。这极大方便了字符串操作,但这并不是编程语言的通用设计。

  • Swift希望类型安全,不允许字符串和数字相加,必须都是字符串才可以相加。为减少因此设计带来的不便,它又提供字符串插值方法,可在字符串中插入其它类型变量,会自动转换成字符串。
    let a = 4
    let s = "number: \(a)"
    利用字符串里面的反斜杠\和括号()的组合,即可插入变量a到字符串中。

字符串和整数比较

尽管更安全的编程语言倾向于阻止字符串和整数比较,仍然有语言希望让它"合法".

  • C/ObjC 语言允许字符串和整数比较大小,编译器虽然会提示警告,依然改变不了编译器认为字符串地址也是一个数值,是可以和整数比较大小的语言设计原则。
    • warning: comparison between pointer and integer
  • C++ 和C语言不同,不允许char *字符串和整数比较大小:
    error: ISO C++ forbids comparison between pointer and integer
    也不允许string类型和整数比较大小,会有如下错误:
    error: no match for 'operator>' (operand types are 'std::string' {aka 'std::basic_string<char>'} and 'int')
  • Python 不允许字符串和整数比较大小或算术运算:
    TypeError: 'xxx' not supported between instances of 'str' and 'int'
    • age = 21 代表age是整数,age = "21"代表age是字符串

字符串拼接

大部分更高级编程语言支持用+做两个字符串拼接/连接,例如Java/C#/Python/JS/Ruby/Swift/Kotlin/Go.

  • C/ObjC/C++把字符串当做数值类型的指针,不允许两个指针相加。
    • 但如果是字符串和整数相加,等同于指针加法。
      • 例如”hello” + 1是字符串”ello”.
  • Java/C#均支持字符串相加,包括字符串 + <其他类型>(其他类型自动转换成字符串)。
  • Python支持两个字符串相加,也支持复合赋值运算符+=做字符串拼接,但不允许字符串和整数相加。
  • PHP和Perl利用.和.=实现字符串拼接,不能使用+连接字符串。
  • Rust有所有权机制,字符串拼接需做转换。
    let s1 = "Hello, ".to_string();
    let s2 = "world!".to_string();
    let s3 = s1 + &s2;
  • 仓颉 支持两个字符串相加,但不允许字符串和其他类型相加。如需要,其他类型必须调用toString转换成字符串。另外,也支持复合赋值 += 作用于字符串。
  • VB 有两种运算符方式拼接字符串。
    • & 拼接字符串或非字符串,注意,& 同时也是长整型类型符,当做字符串拼接需要和运算数有空格。
    • + 运算符:如两个运算数都是数值,表示数值相加;一个是数值另一个是数值字符串,一样是数值加法;两个都是字符串,做字符串拼接;其他情况,报错。
  • Python 也支持两个字符串相加。

字符串字面量自动连接

  • C/ObjC/C++ 支持多个字符串字面量自动连接,例如:
    "hello " "world"代表"hello world".
    • C# 等语言不支持。

格式串详解

不同语言格式串五花八门,究其本质,无非是如何处理格式串和变量对应关系。

示例: 输出右对齐宽度为8个字符整形数据

  • C/ObjC/Java/Ruby/Go
    • %8d
      直接依赖库函数解析格式串,区分格式符前缀%、对齐长度、对齐方向、类型等,做填充、对齐操作。
  • C++
    • std::setw(8)和std::right
      C++ 输出流对象提供方法,设置对齐长度和对齐方向。
  • C#
    • "{0,8:D}"
      和C语言风格很像,不过用新的展示格式,冒号分隔。
  • Python
    • {num:8d}
      最接近C语言风格。
  • Rust
    • {:8}
  • VB.NET
    • String.Format("{0,8}", num)
  • Pascal
    • 整型a输出宽度为8:a:8

格式串语法

  • C语言: %[flag][min width][.precision][length]format
    • min width/precision/length在不同语境部分可选或要忽略
  • Java: %[arguments_index$][flags][field width][.precision]format

浮点数小数位

如下示例保留两位小数:

  • 仓颉:float_var.format(".2")
  • C/ObjC/C++: "%.2f"
  • Pascal:float_var:0:2

不同进制

  • C/ObjC/C++ %o和%x代表八进制和十六进制。
  • C# {:X}代表十六进制,例如$"{12:X}" 输出C.
  • Rust {:x} 代表十六进制。

输出地址

  • C/ObjC/C++ 用 %p 输出变量地址。
  • Rust {:p} 输出变量地址。

带前缀的格式串

  • C/ObjC/C++ 允许用%#o和%#x分别代表加前缀的八进制和十六进制。
    即,15的%#o格式是017, %#x格式为0xf. 当然,%#X对应为0XF.

格式串大小写

  • C语言%g/%e代表浮点数,大写%G和%E功能一样,但表达指数的E用大写,而非前面的小写。

看起来另类的格式串

  • C语言“%8%”会输出一个百分号%, 且左侧有7个空格。
  • C语言%n代表已经输出的字节个数。
    printf("hello我%n\n", &b); // 假设字符串UTF-8编码,b == 8

格式串补零

  • C语言整数格式符%d/%o/%x/%u也可指定精度代表最少位数,最终输出位数不足,会补0.
    printf("%.2d/%.2d/%.4d\n", 2, 12, 12345); // 02/12/12345
  • %02d和%.2d一样可以补0.

宽度和精度可被指定?

  • C语言可以动态指定格式串宽度和精度:
    printf("%.*d\n", 2, 1); // 输出宽度是2,输出01,宽度2也可以用变量传入

废弃的格式符

  • C语言早期,%D指代%ld, %O指代%lo, %X指代%lx, 但后来被发现其实%X也可以指代十六进制大写形式,后来这三个大写格式符被抛弃了。

字面量

顾名思义,字面量代表从字面即可看到具体值的变量。100, 'a', "hello", 1.25都是字面量,与标识符a, sum相反,标识符变量字面看不到它的值,是指代关系。字面量英文名literal.

字面量使用广泛

几乎所有编程语言都支持字面量,包括但不止整型、字符型、浮点数和字符串,有的编程语言还支持布尔类型字面量,大部分支持数组、结构体和类对象的编程语言也支持字面量。字面量已经表达了数值,只能当做右值。

字面量默认类型

一般而言,整数默认是int,浮点数默认是双精度浮点数。如果有后缀,按后缀指示的含义,比如后缀u代表无符号,C#后缀m代表decimal类型。

  • C/ObjC/C++ 整数默认是int, 浮点数默认是double.
  • 仓颉 整数默认是Int64, 浮点数默认是Float64.
  • C# 整数默认是int, 浮点数默认是double.

超过默认类型范围的字面量

  • C/ObjC/C++ 的处理相对暴力,超过就超过,按溢出的数值来算。
  • C# 会提示字面量超出范围,并报错希望程序员换成更大类型。
    例如2147483648超过int范围,编译器提示:无法将类型“uint”隐式转换为“int”


若文章对您有帮助,欢迎关注 程序员小迷 。助您在编程路上越走越好!

微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是 程序员小迷 (致力于C、C++、C#、Android、iOS、Java、Kotlin、Objective-C、Swift、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。


文章转载自:

http://unqNYXU6.ysckr.cn
http://LRtLHcyM.ysckr.cn
http://caoebBUy.ysckr.cn
http://RswSNpCR.ysckr.cn
http://87VvMX7K.ysckr.cn
http://B2J3vlqw.ysckr.cn
http://wkdqI9T4.ysckr.cn
http://6skHubnW.ysckr.cn
http://HcN1211C.ysckr.cn
http://iL9jIqKV.ysckr.cn
http://uIJzx7kE.ysckr.cn
http://EBQhARFb.ysckr.cn
http://CWZGPpik.ysckr.cn
http://8hfjOouc.ysckr.cn
http://Hcc7EBmZ.ysckr.cn
http://0bw4w11Y.ysckr.cn
http://SJdpMEY7.ysckr.cn
http://Z2FmCsxP.ysckr.cn
http://HLwZBmbv.ysckr.cn
http://ChHPh5tk.ysckr.cn
http://zQag2efw.ysckr.cn
http://YaGZ7BSM.ysckr.cn
http://xI0d1JCh.ysckr.cn
http://rvsSIl2y.ysckr.cn
http://RvZkQBbO.ysckr.cn
http://VxGxluoL.ysckr.cn
http://Fr5kGQ8q.ysckr.cn
http://YHUokaeh.ysckr.cn
http://dBhfKP0E.ysckr.cn
http://anP8Bbvo.ysckr.cn
http://www.dtcms.com/wzjs/665747.html

相关文章:

  • 基金会网站开发方案系统开发计划书是在什么阶段完成的
  • 手机网站制作视频教程巩义做网站
  • 中小型网站建设内容基础建设的意义
  • 外国的html 素材网站免费营销课程培训
  • 一站式网站手机端怎么做福利wordpress
  • 广东建设信息网站塔吊查询wordpress后台登录显示500
  • 做物流网站费用做触屏网站
  • 成都武侯区建设厅官方网站直播app开发一个需要多少钱
  • 免费劳务网站建设视觉传达设计网站
  • 开发新闻类网站wordpress 使用方法
  • 做网站服务器移动网站开发做一个简单网页
  • 中国平面设计和网站建设导航 网站 分析
  • 网站建设业务的延伸性陕西省建设厅网站安全员报名
  • 南宁市网站建设做国际网站要多少钱
  • 龙冠专业网站建设义乌网站建设方式
  • 摄影网站建设内容汕头澄海有什么好玩的景点
  • 从什么网站找做app的代码辽宁建设工程信息网地址
  • 河北专业信息门户网站定制学习网站建设的步骤
  • 商务网站建设与维护 ppt设计师免费素材网站推荐
  • 科技公司的网站网上查房屋备案
  • 沈阳网站建设dnglzx做女装网站应怎么定位
  • 好用的建站系统dw网站根目录怎么做
  • 网站主办者和所有者区别天津网站建设解决方案
  • 做外贸一般去什么网站找客户网站优化外包价格
  • 温州网站建设服务中心怎么做外贸网站的邮箱签名
  • 极路由4 做网站10个好用的wordpress投票_评分插件
  • 仙居做网站在哪里做微网站建设制作设计
  • 网站开发技术交流群福田瑞沃es3故障灯图解
  • 厦门哪家公司做网站wordpress编辑器可视化在那里
  • 网络公司给我做网站我有没有源代码版权吗?安徽建筑网