同步和异步、引用、变量声明、全局变量

embedded/2024/10/23 3:01:16/
cle class="baidu_pl">
cle_content" class="article_content clearfix">
content_views" class="htmledit_views">

同步和异步

如果计算机足够快࿰c;任何资源的访问速度都像Cache一样࿰c;没有异步的必要。

编程语言的同步和异步

  • 越早期的编程语言࿰c;支持语言级别的异步越欠缺。

  • JS提供某些操作的同步和异步函数࿰c;例如文件读取࿰c;fs.readFile和fs.readFileSync.

引用

鲁迅的话总是被别人引用࿰c;引用总能得到更多安全感。

引用的本质

  • 尽管各种编程语言用各种方式希望把它和指针撇开࿰c;事实上࿰c;所有编程语言提到变量"引用"基本都是来自变量的地址。

  • C++的引用本质就是指针。

  • PHP 4引入引用赋值࿰c;形如$v1 = "hello"; $v2 =& $v1; 此时v1和v2指向同一个变量࿰c;一个变大家都变。

变量声明

声明有的时候很有作用࿰c;大国对抗所谓的"声明"其实就是赤裸裸的"威胁"࿰c;但声明显得更文明。

不同语言的声明

  • 越古早的语言࿰c;越需要声明࿰c;越像脚本的语言࿰c;越对声明不严格。

  • Perl需要显式声明变量。

  • PHP不需要显式声明变量࿰c;声明可以和赋值同时进行。

  • Python是Shell的改进版࿰c;不需要特别声明࿰c;想用就直接用。

  • C/ObjC/C++/Java/C#/Rust/Go/Swift/仓颉/VB/Fortran 都需要先声明(或者被绑定)࿰c;才能使用。

  • JS比较特殊࿰c;大部分情况下都需要先用let或var声明变量再使用࿰c;但可以在不声明变量的情况下直接赋值࿰c;这会导致该变量被隐式地创建为全局变量࿰c;大概率不是预期。
    • 比如在没声明a的前提下给a赋值࿰c;创建了一个全局变量:a = 1

变量声明的默认值?

  • C/ObjC/C++变量声明但未初始化࿰c;默认值是不确定的。

  • Java基本变量只声明不初始化࿰c;就使用࿰c;编译器会报错。注意࿰c;如果是类成员变量࿰c;对象初始化后成员没有显式初始化࿰c;默认值是0.

变量声明缺省类型?

对于支持缺省类型的编程语言࿰c;初始化可以用缺省类型࿰c;但如果是声明࿰c;缺省类型就不能缺少。

  • 仓颉变量声明࿰c;必须指定类型࿰c;因为编译器不知道缺省类型。

全局变量

每个省出生的人口最终会算到全国的出生人口。

不同语言的全局变量

  • C语言在函数之外定义的变量是全局变量࿰c;C++除此之外࿰c;在类里面定义的static变量也是类全局变量。

  • Java/C#的类static变量和C++比较像。

  • PHP全局变量一样是定义在最外级别࿰c;用GLOBAL关键字指示使用的是全局变量。

全局变量、局部变量覆盖

  • C/C++默认局部变量同名覆盖全局变量࿰c;C++有特例࿰c;是用域作用符::指定访问全局变量。

  • PHP必须明确用GLOBAL指示操作全局变量࿰c;否则同名变量会当成局部变量处理。另࿰c;PHP提供了GLOCALS数组指示操作全局变量。


c26">若文章对您有帮助࿰c;欢迎关注。助您在编程路上越走越好!

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

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

class="blog-extension-box">

http://www.ppmy.cn/embedded/129717.html

相关文章

[ 钓鱼实战系列-基础篇-5 ] 一篇文章教会你用红队思维设计钓鱼模板(附常见的钓鱼邮件模板)

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…

理解和重构目录结构:Java 中的父子关系管理

理解和重构目录结构:Java 中的父子关系管理 一、前言1. 问题背景2. 目录项结构3. 实现重构逻辑4. 示例代码5. 结果与输出 二、总结 好的,我们将目录结构调整为使用中文数字表示的标题。以下是重新组织后的内容: 一、前言 在软件开发中&…

线性可分支持向量机的原理推导 转为拉格朗日函数式 公式解析

本文是将文章《线性可分支持向量机的原理推导》中的公式单独拿出来做一个详细的解析,便于初学者更好的理解。 公式 9-7 引入了拉格朗日乘子法,这是支持向量机(SVM)优化问题的重要步骤,目的是将原来的带有约束条件的优化…

什么是大数据分析:定义、优缺点、应用、机遇和风险

大数据分析的概念已经成为我们社会不可或缺的一部分。众多公司和机构已经开发了大数据应用程序,取得了不同程度的成功。社交媒体平台和传感器等技术正在以前所未有的速度生成数据,就像一条装配线。如今,几乎所有东西都是物联网的一部分&#…

【从零开始的LeetCode-算法】945. 使数组唯一的最小增量

给你一个整数数组 nums 。每次 move 操作将会选择任意一个满足 0 < i < nums.length 的下标 i&#xff0c;并将 nums[i] 递增 1。 返回使 nums 中的每个值都变成唯一的所需要的最少操作次数。 生成的测试用例保证答案在 32 位整数范围内。 示例 1&#xff1a; 输入&am…

JavaSE之多态

文章目录 多态的概念多态的实现条件向上转型动态绑定静态绑定向下转型Object类 给个关注叭        个人主页 JavaSE专栏 前言&#xff1a;本篇文章主要整理了多态的概念、实现条件、多态性的体现、向上转型、向下转型、动态绑定和静态绑定以及Object类中的equals、toStri…

路由器概述

一、路由器的工作原理 根据路由表转发数据 二、路由表与其形成 2.1路由表 &#xff08;1&#xff09;概念 路由&#xff1a;从源主机到目的主机的转发过程路由表&#xff1a;路由器中维护的路由条目的集合&#xff1b;路由器根据路由表做路径选择 &#xff08;2&#xff…

支持向量机SVM原理详解

SVM原理详解 1、超平面2、SVM原理1. 问题定义2. 分类决策得到约束条件 3. 最大化间隔4. 优化目标 3、凸优化问题1. 原始优化问题优化目标约束条件 2. 拉格朗日乘子法3. 拉格朗日函数分析4. 求解对 w w w 和 b b b 的极值5. 构造对偶问题对偶问题的约束条件&#xff1a; 6、通…