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

携程网站的会计工作怎么做b站推广入口2022

携程网站的会计工作怎么做,b站推广入口2022,武汉 网站建设 报价,微信公众号制作网页目录 Swift可以像Python一样在定义变量时省略var或者let? 定义常量和变量的不同形式 预定义常量 预定义变量 可变变量 const常量的不同形式 不同语言的const const的指针还是常量? const和代码大小 变量或常量修改 字符串修改 Swift可以像Python一样在定义变量时省…

目录

Swift可以像Python一样在定义变量时省略var或者let?

定义常量和变量的不同形式

预定义常量

预定义变量

可变变量

const常量的不同形式

不同语言的const

const的指针还是常量?

const和代码大小

变量或常量修改

字符串修改


Swift可以像Python一样在定义变量时省略var或者let?

Swift是一门静态类型语言,它在编译时就需要知道每个变量的类型。为了满足这一要求,Swift 要求在定义变量时显式地声明它们是变量(var)还是常量(let)。这样做的好处是增加了代码的清晰性和可读性,同时也允许编译器在编译时进行更严格的类型检查。而Python是动态类型语言,不需要考虑变量定义,只需要用即可。

定义常量和变量的不同形式

  • C/C++/ObjC/C#/JS/Go 默认声明的是变量,const关键字变成常量是大部分编程语言的首选。
  • Swift/仓颉 用let声明常量,var声明变量。
  • Rust更加严格,默认用let绑定就是常量,用mut修饰才是变量。
  • VB常量用Const.
  • Python没有代表常量的关键字,取决于约定,一般约定大写为常量。
  • Java用final代表常量。
  • JS ES6之前var代表变量,ES6之后强烈推荐用let代替变量,可以解决var会污染作用域的问题。
  • Pascal用Const或者const代表常量,不过它不需要指定类型。例如:
    Const A = 100;
    Pascal还支持多个Const放在一起定义,例如:
    Const c1 = 'a';
    c2 = 'b';
    如上,c1和c2都是常量。
  • PHP 定义常量的方式有两种,一种是const,一种是:define(identifiervalue),PHP 4之后常量无需声明,注意变量需要以$开头而常量无此限制。
    • 例如:define("NUM", 2) 定义常量NUM,值是2.
    • constant("NUM") 获取常量NUM的数值,defined("NUM")返回1,代表常量NUM有定义。
  • Kotlin 用var代表变量,val代表常量。值得注意的是,val可指代不可变引用,即此引用不可以被赋值为新值,但此对象内部的状态可以改变。

预定义常量

  • PHP 预定义常量包含 __FILE__, __LINE__, PHP_VERSION 等。
  • VB提供了一些以vb开头的系统常量,例如vbCrLf表示回车换行。

预定义变量

  • PHP 为了更好支持网络数据包,有一些预定义常量,例如 $_GET, $_POST, $_GLOBALS等。

可变变量

这是一种特殊的变量,变量的名称是另一个变量的值得来。

  • PHP 用$来支持可变变量,例如:
    $a = "bcd"
    $bcd = "this is bcd"
    echo $$a // 输出 this is bcd

const常量的不同形式

const关键字出现在不少编程语言中,它是防御性描述,提醒编译器注意相应的变量或常量不能被修改。当然,编译器无法检测hack刻意躲过检查的行为。

不同语言的const

  • C/ObjC语言的const修饰的不是常规的”常量”,而是”不可修改”的变量。但实际上,和常量效果一样。本质在于C语言根本没有所谓常量的概念,用const来假装有常量。
  • C++ const真的是常量,比C语言的使用更广泛,尤其是类成员函数用到const引用,iostream就包含很多const修饰符。C++17引入了constexpr关键字,可修饰新的类型,如函数、类等,使得常量控制更强大。
    • constexpr int get_size() { return 3; }
    • char arr[get_size()]; // 合法!
    • 尽管如此,constexpr不一定保证编译期完成,C++20又引入了consteval确保一定是编译期完成。
  • Java用final代表常量,有意思的是const属于Java的预留关键字,但不能用。
  • C#除了有const,受局限于声明时就必须初始化。readonly变量可以推迟到构造函数初始化。
  • Python没有const关键字,按照约定常量用大写字母,实际上语法上没有限定不能被修改,可能源于Python设计对常量的期待很低。
  • Go支持单个或多个标识符的const初始化,多个标识符初始化需要用括号包起来。
  • Rust支持const常量,属于编译期常量,let虽然也代表常量,属于运行期常量,加mut代表运行期变量.
  • JS在ES6之后引入了const关键字代表常量,let声明的变量属于变量。var属于deprecated的函数内变量。
  • Swift/仓颉 没有const关键字, 用let代表常量,var代表变量。
  • VB/Pascal 用Const代表常量。

const的指针还是常量?

有指针的编程语言就是复杂,const和指针的组合让大家摸不到头脑。究竟是变量是const还是指针const?一个比较有意思的原则是,”从右向左读”的解析方法很实用。

  • C语言:”const int * const p”解读方式是”从右向左”读的方法
    • const int * p是”p” “指向” “整形” “常量”.
    • const int * const p是”p” “常” “指向” “整形” “常量”.

const和代码大小

一般而言相比没有const修饰,加const修饰后不会增加代码大小,可能减小代码大小。编译器利用const修饰优化对应的变量,如果可能用常数代替或者引用已有变量而不拷贝新的变量。

变量或常量修改

有些变量其实可能是常量,修改将产生一些不预期的结果。

字符串修改

  • C语言字符串char *变量本质是指针, 如果是字面量初始化,存放位置可能位于只读区,修改内容将产生崩溃。
    • char s[] = "hello"与char *s = "hello"截然不同,前者一定可修改,而后者不一定。反汇编这两段代码,能看到区别在于后者会直接取指针赋值,前者会有拷贝或初始化动作。
    • 编译器如果把字符串字面量放在.rodata区,程序运行后对应内存页面就是只读的,写此区域将发生内存异常。
    • C修改字符串字面量的行为是未定义的。
    • 另外上面数组s是常量,不能再被赋值。
  • C++标准明确指出字符串字面量是const类型。C++修改字符串字面量的行为一定会出错。
    • 对于string str = "abcd"赋值的变量允许修改,str构造时有申请空间保存"abcd".
  • Java string是常量,StringBuilder和StringBuffer是可修改的,StringBuffer是线程安全,访问起来可能更慢。
  • C# string和Java一样是常量,StringBuilder是可修改的。
  • Java和C#把string默认当常量,其实是为了优化,常量可以提前优化在某个地址,这和C/C++字符串char *字面量可能被优化是类似的。
  • C++ string不像C#和Java那样,它默认可修改。


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

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

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

http://www.dtcms.com/wzjs/323327.html

相关文章:

  • 戴尔公司网站设计特色seo网站查询工具
  • 兴义网站建设湖南靠谱seo优化公司
  • 万网域名注册官网查询入口seo外包公司需要什么
  • 重庆专业网站建设首页排名上海高端网站定制
  • 深圳网站建设seo上海网络推广服务公司
  • 动态网站开发 pdf推广普通话手抄报文字内容
  • 网上注册公司什么网站推广网络推广平台
  • 张家港企业做网站手机端竞价恶意点击能防止吗
  • 什么网站做论坛签名网络推广网站大全
  • 网页提示站点不安全手机怎么搭建属于自己的网站
  • 建网站哪家好sem是什么意思中文
  • 河池市网站建设seo推广工具
  • 精品课程网网站搜索排优化怎么做
  • 做导航网站用什么源码网络营销渠道策略
  • 附近做网站石家庄网站seo
  • 高端平面网站怎样在网上推广自己的产品
  • 漳州做网站视频推广一条多少钱
  • 宿州网站建设设计网站都有哪些
  • 开源做网站需要申请账号吗顶尖文案网站
  • 做网站建设公司全网优化哪家好
  • 网络销售公司经营范围奶糖 seo 博客
  • 新增备案网站负责人新闻发布会稿件
  • 一个专门做各种恐怖片的电影网站什么是网络营销策划
  • 注册网站在哪里创建搜索大全引擎入口网站
  • html5网站建设加盟baidu优化
  • 济南市网站建设大数据查询官网
  • 吴江专业的网站建设百度空间登录
  • 网站建设成都公司太原网络营销公司
  • 旅游网站如何建设广州seo排名收费
  • 网站开发的工作要求网站自助搭建