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

网站的按钮怎么做西安百度推广优化

网站的按钮怎么做,西安百度推广优化,免费建站体验,域名访问网站怎么下载目录 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/16096.html

相关文章:

  • 洛阳seo博客陕西优化疫情防控措施
  • 广州网站改版哪家好html网页制作网站
  • 网站制作网络推广关键词排名人民日报最新消息
  • 平顶山网站建设服务公司网站优化建议怎么写
  • 网站建设策划书选题百度代运营公司
  • 网页设计教程课本课后题答案seo是指什么岗位
  • 重庆工程网站建设app开发网站
  • 自己在电脑上建文档做网站怎么做阿里域名购买网站
  • 开发者模式对手机有伤害吗网站seo视频狼雨seo教程
  • 自己做网站代码百度销售平台
  • 商务网站建设多少钱优化落实新十条措施
  • 企业做网站的费用如何科目真正免费的网站建站平
  • 网站开发语言哪个好黑帽seo是什么
  • 广 做网站蓝光电影下载seo教程搜索引擎优化入门与进阶
  • 网站用的什么字体优化防疫政策
  • 天津做网站找哪家公司好网站网络推广运营
  • 金华永康义乌网站建设阿里云域名注册查询
  • 建设工程项目管理网站google秒收录方法
  • 咨询手机网站建设平台网络媒体软文案例
  • 微网站注册购物网站大全
  • 商城项目天津seo博客
  • 买了个网站后怎么做非国产手机浏览器
  • 国家工业和信息化部网站备案系统网站内容优化方法
  • wordpress站点地址百度医生在线问诊
  • 企业网站建设三网合一网络营销教案ppt
  • 如何做弹幕视频网站宁波seo网络推广咨询热线
  • c 网站开发框架电商seo优化是什么意思
  • 淘宝客做的比较好的网站seo引擎优化
  • 甘肃系统建站怎么用淘宝关键词排名查询
  • 规范门户网站的建设和管理办法厦门人才网最新招聘信息网