首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏裸机思维

    漫谈C变量——夏虫不可语冰

    在C语言中,按照生命周期来分,变量只有两类:静态变量和动态变量。 其中,静态变量是指,在编译时刻(Compiling-time)变量的地址和大小都已经确定下来的变量。 动态变量是指,直到运行时刻(Run-time),变量的地址(有时候包括确切大小)才能在某个时刻暂时性的确定下来的变量。 基于这一原因,后面将不对全局变量和静态局部变量之流做区分,统一称为静态变量。 > 静态变量放在哪里呢? > 动态变量 C语言原生态支持的动态变量就只有局部变量了(Local Variable)。 理论上说,局部变量只在程序进入变量所在的花括号范围内时才从栈(stack)中进行分配,一旦程序出了花括号,它的声明就结束了——夏虫不可语冰说的就是局部变量那可怜的一生…… 看着新近分配的局部变量,静态局部变量深深的吸了一口烟

    3K20发布于 2020-07-28
  • 来自专栏AI科技大本营的专栏

    AlphaGo棋风已,强化学习功不可

    AlphaGo棋风已 聂卫平老师有说,AlphaGo是特意只输半颗子。这一说法我们尚不能证实,但AlphaGo的白棋在后续变化上,相对于人类棋手对局,肯定是下得比较保守的。 强化学习功不可没 从新版AlphaGo的表现来看,它更多是在自我学习的成长上,也就是通过强化学习(Reinforcement Learning)和自我对局演化成不同的版本。

    78260发布于 2018-04-27
  • 如何在 Python 中使变量不可继承

    因此,我们可以使用双下划线前缀来使变量不可继承。class A: SIZE = 5 def __init__(self): if self.__class__ ! 我们可以使用属性描述符来使变量不可继承。

    43010编辑于 2024-05-13
  • 来自专栏全栈程序员必看

    实现JQuery EasyUI右键菜单不可用效果

    我平时经常使用VS作为开发工具,使用VS的朋友也会注意到,当只有一个页面打开时,右击“Close All But This”是不可用的,我感觉这样更加的人性化。于是,我就试着实现这一功能。 首先,实现“除此之外全部关闭”不可用。 当只打开一个Tab选项卡时,右键菜单里“除此之外全部关闭”就应该不可用,这样可以提示用户没有除这一个选项卡没有其他的选项卡了。 程序实现很简单了,只要获得打开Tab选项卡的个数,如果个数为1,那么就把“除此之外全部关闭”不可用就行了。 第二,实现“当前页右侧全部关闭”不可用。 当一个Tab选项卡的右侧没有选项卡的时候,这个Tab选项卡就应该不可用。 程序实现也不难,只要获得最后一个Tab选项卡的标题和当前右键菜单所在的Tab选项卡的标题进行比较,如果一致,就把“当前页右侧全部关闭”不可用。

    1.6K40编辑于 2022-07-05
  • 来自专栏深入浅出区块链技术

    Solidity 中 immutable (不可变量)与constant(常量)

    constant 常量 constant 修饰的变量需要在编译期确定值, 链上不会为这个变量分配存储空间, 它会在编译时用具体的值替代, 因此, constant常量是不支持使用运行时状态赋值的(例如: 0.7.0; contract C { uint constant X = 32**22 + 8; string constant TEXT = "abc"; } immutable 不可变量 不可变量同样不会占用状态变量存储空间, 在部署时,变量的值会被追加的运行时字节码中, 因此它比使用状态变量便宜的多, 同样带来了更多的安全性(确保了这个值无法在修改). 这个特性在很多时候非常有用, 最常见的如 ERC20[2]代币用来指示小数位置的decimals 变量, 它应该是一个不能修改的变量, 很多时候我们需要在创建合约的时候指定它的值, 这时 immutable https://learnblockchain.cn/2018/01/12/create_token [3] Tiny熊: https://learnblockchain.cn/people/15 [4]

    1.5K30发布于 2020-06-01
  • 来自专栏sickworm

    4. 变量声明和变量状态设计

    但他价值更大的另一面在于,Kotlin 可以声明不可能为空的对象。 1. 非空类型 对象不可能为空意味着程序复杂度的降低。 如果一个变量他永远都不可能为空,那其实是一件很快乐的事!一个对象可能的状态减少了,程序逻辑会变得更简单清晰,代码的可维护性会大大的提高。我们应该尽量将一个变量声明为非空类型。 以后不再为空即是他和可空变量的区别,从状态复杂度来看,lateinit 变量是介于非空变量和可空变量之间的。 使用 lateinit 是一个有风险的事情,因为非空的条件复杂了(初始化后才是非空)。 可参考:https://en.wikipedia.org/wiki/Null_object_pattern 4. final 除了 Kotlin 的非空类型/可空类型,val/var(即 Java 的 变量状态设计原则 经过上面的变量状态介绍,我们按照变量状态从简单到复杂的顺序,可以得到一个变量状态声明的优先级: 声明为 val 变量,无法满足再考虑 var 声明为非空变量 无法满足声明时赋值,优先考虑赋值为空对象

    2K30发布于 2020-02-11
  • 来自专栏Hank’s Blog

    习题 4变量和命名

    下一步你要学的是“变量”。在编程中,变量只不过是用来指代某个东西的名字。程序员通过使用变量名可以让他们的程序读起来更像英语。而且因为程序员的记性都不怎么地,变量名可以让他们更容易记住程序的内容。 值得注意的是,编辑的代码要保持变量一致性,包含变量的输入内容一定要和条件中的变量一摸一样,而这就需要我们的细心,否则的话翻译出来是没有结果的,会出现下面这种情况: Traceback (most recent call last): File "ex4.py", line 8, in <module> average_passengers_per_car = car_pool_capacity 如果只用 4 会有什么问题? 4.0包含浮点数,进行运算得到的结果会更清洁,不加浮点数如果得到的结果包含小数,就只会显示整数部分,这样会导致结果不精确。 浮点数作用就是使计算结果更加精确的 3.在每一个变量赋值的上一行加上一行注解。 ? 4.记住 = 的名字是等于(equal),它的作用是为东西取名。

    48510发布于 2020-09-16
  • 来自专栏XinChen's Tec

    JavaEE4 - 变量类型

    Java 变量类型 在Java语言中,所有的变量在使用前必须声明 格式 数据类型 变量名 [ = 值][, 变量名 [= 值] ...] ; eg int a, b, c; // 声明三个 int型整数:a、 b、c int d = 3, e = 4, f = 5; // 声明三个整数并赋予初值 byte z = 22; // 声明并初始化 z String s = "ixinjiu.cn "; // 声明并初始化字符串 s double pi = 3.14159; // 声明了双精度浮点型变量 pi char x = 'x'; // 声明变量 x 的值是字符 'x'。 Java语言支持的变量类型有: 类变量:独立于方法之外的变量,用 static 修饰。 实例变量:独立于方法之外的变量,不过没有 static 修饰。 局部变量:类的方法中的变量

    78240编辑于 2023-03-06
  • 来自专栏Datawhale专栏

    GPT-4笨的原因揭秘

    Datawhale干货 最新:GPT,编辑:机器之心 笨的本质是知识没进脑子。 自发布以来,曾被认为是世界上最强大的 GPT-4 也经历了多场「信任危机」。 如果说今年早些时候那次「间歇式降智」与 OpenAI 重新设计 GPT-4 架构有关,前段时间的「懒」传闻就更搞笑了,有人测出只要告诉 GPT-4「现在是寒假」,它就会变得懒懒散散,仿佛进入了一种冬眠状态 大模型懒、笨,具体是指模型在新任务上的零样本性能变差。尽管上述原因听起来很有趣,但问题到底怎么解决呢? 在最近的一篇论文中,加州大学圣克鲁斯分校研究者的新发现或可解释 GPT-4 性能下降的深层原因: 「我们发现,在训练数据创建日期之前发布的数据集上,LLM 的表现出奇地好于之后发布的数据集。」 结果发现,对于不可能存在任务污染的分类任务,在一系列任务中,模型很少比简单多数基线有统计意义上的显著提高,无论是零样本还是少样本(图 2)。

    36310编辑于 2024-04-24
  • 来自专栏Vincent-yuan

    多线程的共享变量的内存不可见性

    即共享变量)的过程: 线程的工作内存会去读取主内存的成员变量并保存副本 线程在工作内存中修改副本 将修改后的副本的值推送给主空间并改写主空间该成员变量的值 主空间成员变量修改后的值将不会主动推送给其他线程 , 这就造成了线程的工作内存的共享变量的不同步 问题: 各个线程的工作内存不可见   即 A线程先读取共享变量a, B线程修改了共享变量a后为a`,推送给主内存并改写, 主内存不会推送给A线程,A和B的变量会不同步 工作内存中会主动去拉取主内存的共享变量并创建其副本 工作内存中的副本修改后会推送给主内存改写共享变量 volatile 会使得主内存修改后的共享变量推送其他线程 内存不可见的本质 : 线程之间有互相独立的缓存区, 当多个线程对共享数据进行操作时, 其操作彼此不可见 可以直接理解: 使用volatile之后该共享该变量线程不在工作内存缓存其副本, 所有线程对该变量的操作全是在主内存中完成 即不在存在操作的不可见,所有线程的操作的变量是位于主内存的变量 https://www.cnblogs.com/huangleshu/p/10026222.html

    90420发布于 2021-07-16
  • 来自专栏python3

    习题4变量和命名

     today.") print("We need to put about", average_passengers_per_car, "in each car.") note "_"下划线这个符号在变量里通常被用作假象的空格 常见问题 = 和 == 有什么不同 ‘=’的作用是将右边的值赋予给左边的变量名,‘==’的作用是检查左右两边是否相等 优雅的代码写法 x = 100 而不是 x=100(虽然这样写并没有错误),强烈建议左右两边都加空格

    35720发布于 2018-08-02
  • 来自专栏BAT的乌托邦

    【小家java】final修饰的变量真的不可变吗?

    每篇一句 穷不练酒,富不占赌 1、概述 这可能是大家的一个共识:如果我们希望这个变量不可变,我们可以用final进行修饰。 但本篇将带你深入了解不变的含义,我相信可以让你更深的了解final的原理,也能记得更牢靠 2、栗子 被final修饰过的变量,只是说栈存储的地址不能再改变,但是却没有说地址指向的内容不能改变。 System.out.println(str2); //efg System.out.println(field.get(this)); //gfe 通过反射拿到的值是对的 我们通过反射拿到的值是正确的,而直接输出变量的值却是不对的 4、最后 整理出来的内容,希望能加深大家对final关键字的了解

    1.2K20发布于 2019-09-03
  • 来自专栏用AI私教速通Rust

    使用默认不可变的Rust变量会踩什么坑

    讲动人的故事,写懂人的代码 Rust的变量真的是名不副实。名字中明明有个“”字,却默认不可变。还美其名曰“不可变量”。 代码清单3-1 在循环中误为不可变量赋值// 源代码位置:ch03/immutable_misstep 3 let sum = 0; 4 for i in 1..=3 { 5 第3行声明了一个不可变量sum并初始化为0,也就是将0绑定到不可变量sum上。这里是"误用不可变量"问题的开始。第4-7行使用for循环遍历1到3的范围。第4行是Rust中的一个for循环语句。 所以,第4行完整含义是创建一个循环,其中变量 i 将依次取值 1、2 和 3。对于每个值,执行循环体中的代码。第5行就踩坑里了。 代码的主旨是展示"误为不可变结构体字段赋值"的问题及其解决方法。第1-4行定义了一个名为Point的结构体,包含两个i32类型的字段x和y。

    88673编辑于 2024-10-02
  • 来自专栏XinChen's Tec

    GoLang4 - Go语言变量

    Go 语言变量 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。 变量可以通过变量名访问。 Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。 声明变量的一般形式是使用 var 关键字: var identifier type 可以一次声明多个变量: var identifier1, identifier2 type eg package main import "fmt" // Go语言变量 func main() { var a string = "Runoob" fmt.Println(a) var b, c int = 1, 2 fmt.Println(b, c) } XinChen 1 2 变量声明 第一种,指定变量类型,如果没有初始化,则变量默认为零值。 var v_name v_type v_name = value 零值就是变量没有做初始化时

    24030编辑于 2023-02-27
  • 来自专栏风骚语言Rust

    Rust中不可变量与const有何区别?

    不可变量可以防止意外修改,从而避免数据竞争和内存错误。例如,如果一个变量不可变的,则无法在多个线程中同时修改它,从而避免数据竞争。不可变量可以使代码更加简洁易读。 例如,如果一个变量不可变的,则可以明确地表明该变量的值在代码块内不会改变,从而使代码的逻辑更加清晰。不可变量可以帮助编译器进行优化。 例如,如果一个变量不可变的,则编译器可以知道该变量的值在代码块内不会改变,从而可以进行一些优化,例如消除不必要的计算。不可变量是函数式编程的重要概念。 函数式编程鼓励使用不可变量和纯函数,从而使代码更加易于理解和测试。Rust中不可变量与const有何区别?const MAX_SIZE: usize = 100;const 关键字用于定义常量。 常量与不可变量类似,但常量在编译期就确定了值,不能在运行时改变。不可变量直到运行期来能确定下来。常量具有以下优点:性能: 常量可以帮助编译器进行优化。可读性: 常量可以使代码更加易读。

    55300编辑于 2024-02-16
  • 来自专栏韩曙亮的移动开发专栏

    【Kotlin】空安全 ① ( Kotlin 的空安全机制 | 变量可空性 | 默认变量不可赋空值 | 声明可空类型变量 )

    文章目录 一、Kotlin 的空安全机制 二、变量可空性 1、默认变量不可赋空值 2、声明可空类型变量 一、Kotlin 的空安全机制 ---- Java 中的空指针问题 : 在 Java 语言 ---- 1、默认变量不可赋空值 在 Java 中 , 引用类型的变量 默认为 null 空值 ; 但是在 Kotlin 中 , 变量默认不可为 null 空值 , 这样所有的 变量 在默认状态下 , 默认为非空的 , 在 Kotlin 中 不允许将 默认变量 赋值一个空值 , 除非 将该变量声明为 可空类型 ; 2、声明可空类型变量 声明可空类型变量 : 如果要声明一个 可空类型的变量 , 必须 声明该变量的具体的类型 , 并在该类型后添加 ? 标志 , 具体格式如下 : var 变量名: 变量类型? 代码示例 : 在下面的代码张红 , 将 var name 变量声明为了 String?

    2.9K20编辑于 2023-03-30
  • 分自编码器原理与潜变量模型解析

    生成模型可分为两类:显式密度模型:能够显式计算密度函数$p$隐式密度模型:不计算$p(x)$,但训练后能够从底层分布中采样潜变量模型潜变量模型旨在用潜变量建模概率分布。 潜变量是将数据点转换到连续低维空间的表示。直观上,潜变量将以更简单的方式描述或"解释"数据。在严格的数学形式中,遵循概率分布$p(x)$的数据点$x$被映射到遵循分布$p(z)$的潜变量$z$。 基本术语定义:先验分布$p(z)$:建模潜变量的行为似然$p(x|z)$:定义如何将潜变量映射到数据点联合分布$p(x,z)=p(x|z)p(z)$:似然和先验的乘积,本质描述模型边际分布$p(x)$: ,我们训练外部神经网络来预测分参数,而不是对每个数据点优化ELBO。 第二项控制分后验与先验的接近程度。

    29410编辑于 2025-10-18
  • 来自专栏Flutter性能监控

    Rust 变量默认不可变的设计到底是为了什么

    highlight: a11y-light theme: condensed-night-purple 问题详述 为什么 Rust 里的变量被设计成默认不可变,要加mut关键词才可变? Shadowing 不同于将变量标记为 mut,因为如果我们在不使用 let 关键字的情况下不小心尝试重新分配给该变量,则会出现编译时错误。 通过使用 let,我们可以对一个值执行一些转换,但在这些转换完成后变量不可变的。 观点二: 鉴于一种语言具有可变和不可变量,对我来说默认情况下不可变似乎更好。 可能不熟悉项目的程序员无意中修改一个变量,修改前他没有意识到该变量不可变的,进而导致重大事故。偶现事件也很难调试,这是很糟糕的一件事。 总结 Rust 变量默认不可变的设计本意是想将可能出现的错误扼杀在摇篮中(编译器行为),类似提醒和告警等。如果你非要绕还是可以绕过去滴。再完备的法典,不还是有人可以钻到空子么?

    71210编辑于 2023-05-01
  • 来自专栏CSDN技术头条

    不可能为可能,Tachyon帮助Spark变小时级任务到秒

    /bin/tachyon format 4.部署Tachyon。注意NoMount选项,NoMount不需要root权限: .

    98980发布于 2018-02-11
  • 一起长锈:4 默认不可变的变量绑定与引用(从Java与C++转Rust之旅)

    但是要注意那句话其实是在做变量绑定(binding),不是赋值哦。” 4.1 默认不可变的变量绑定 贾克强:“在Rust中,我们用let关键字把一个值和一个变量名绑定在一起。” 贾克强:“Rust的变量绑定跟Java或C++的赋值不一样,其实主要是体现了更深的语言设计原则和变量行为的差别。” “变量绑定除了默认不可变这点,还包括变量值的所有权和范围的特性。” i32` found reference `&{integer}` note: function defined here --> src/main.rs:1:4 主要讨论了以下几个要点: Rust中,变量绑定是默认不可变的,即一旦一个值被绑定到一个变量,这个变量的值就不能再改变。但是,如果在声明变量的时候使用了mut关键字,那么这个变量就可以改变。 Rust Java C++ 变量绑定 使用let将值绑定到变量名。默认情况下,变量绑定是不可变的,但可以通过mut关键字使其变为可变的。

    66743编辑于 2024-06-10
领券