首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我是Angular的新手,遇到了一个错误:我的变量虽然出现了,但却没有被定义。

在Angular中遇到变量显示但未定义的错误,通常是由于以下几个原因造成的:

  1. 变量作用域问题:确保变量在你尝试访问它的地方是可见的。例如,如果你在一个组件类中定义了一个变量,但在模板中使用了它,确保没有拼写错误,并且变量的访问修饰符(如publicprivate)允许在模板中访问。
  2. 异步数据:如果你的变量依赖于异步操作(如HTTP请求),可能在数据到达之前就尝试访问了它。在这种情况下,你可以使用*ngIf来确保只有在数据存在时才渲染相关部分。
  3. 模块导入问题:如果你在组件中使用了某些服务或管道,确保它们已经在相应的模块中导入了。
  4. TypeScript类型问题:即使变量在运行时存在,TypeScript编译器也可能因为类型不匹配而报错。确保变量的类型被正确声明。
  5. 初始化问题:如果变量没有被正确初始化,也可能导致这种错误。确保在使用变量之前已经对其进行了赋值。

下面是一个简单的Angular组件示例,演示了如何正确定义和使用变量:

代码语言:txt
复制
import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-example',
  templateUrl: './example.component.html',
  styleUrls: ['./example.component.css']
})
export class ExampleComponent implements OnInit {
  myVariable: string; // 确保变量已经声明

  constructor() { }

  ngOnInit(): void {
    this.myVariable = 'Hello, World!'; // 初始化变量
  }
}

在模板文件example.component.html中:

代码语言:txt
复制
<div *ngIf="myVariable">
  {{ myVariable }}
</div>

如果你遵循了上述步骤,但仍然遇到问题,可以尝试以下步骤来调试:

  • 检查控制台中的错误信息,通常会有更详细的错误描述。
  • 使用Angular的开发工具,如Angular DevTools,来检查组件状态。
  • 确保你的Angular版本是最新的,有时候问题可能是由于使用了旧版本的Angular导致的bug。

参考链接:

如果你需要进一步的帮助,可以提供更多的错误信息或代码片段,以便更准确地诊断问题。

相关搜索:我是TypeScript的新手,遇到了一个错误:意外的令牌'export‘我的乌龟背景没有出现在屏幕上,我得到了一个错误我使用的是angular 8中的外部javascript文件。它显示了函数未定义的错误。但是我已经定义了函数当我更新self变量时,出现了一个奇怪的结果(因为我是python新手)。为什么会发生这种情况?试图创建一个密码。在我修复了输入字段的错误后,我遇到了变量变得无法解析的问题我试图在flutter中绘制一个自定义形状,但不幸的是该形状没有出现,我只看到了白色容器刚开始学习django -我在VS代码中得到了“未定义的变量'auth'”,服务器上出现了另一个错误在我的js代码中添加了建议的分号之后,我现在得到了一个解析错误,代码末尾出现了意外的标记为什么我已经定义了一个未初始化的局部变量错误?我得到了一个编译错误:变量没有在后端定义,相同的代码在前端完全相同的副本中工作我是camel框架的新手,我尝试过一个程序将文件从一个目录复制到另一个目录,但在运行该程序时,我得到了以下错误谁能解释一下,为什么我使用一个变量是错误的,但如果我把它换成另一个变量,我就得到了正确的解决方案?为什么我在加载LuaXML时出现错误,告诉我luaL_regsiter是一个未定义的符号?我想让我的rails应用程序读取二维码,但出现了一个错误,未定义的#<ChunkyPNG::Image:>方法‘read’出现为什么我在定义了PNG类型后,仍然从PNG文件的TypeScript中得到了一个模块找不到错误?我创建了一个不和谐级别的机器人,但它得到的错误是没有定义我使用了一个useDispatch自定义钩子,并在我的测试中得到了这个错误:操作必须是纯对象。使用自定义中间件进行异步操作当我试图在github页面上部署我的angular项目时,突然出现了一个错误: Failed to get remote.origin.url刚刚下载了Android Studio,打开了我的第一个项目,我在activity_main.xml中遇到了错误,但我还没有做任何事情在我的github页面上使用Create-react-app时出现了404错误。这是一个简单的应用程序,没有路由
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

浅谈 Angular 项目实战

除此之外,Angular 的文档让我着迷,除了基本的教程之外,其核心知识是最让我津津乐道的地方,不仅可以了解技术内幕,甚至可以学习很多基础知识,都非常实用,对于前端新手以及业余爱好者都有很大的帮助作用。...modal-alert.component.html 中的代码是整个组件的 HTML 结构,有两个变量及一个实例方法。...通过 Angular 的响应式表单可以很容易实现。但是对于模板驱动表单也可以用另类的方式实现,比如手动实现一个双向数据绑定,虽然有点麻烦,但却是可行的。关于这个话题我放到下一篇文章中说明。...然后我就想有没有自带的管道实现数据映射,仔细翻了翻文档,最后终于找到了,I18nPluralPipe 就是用于映射数据的。...异步开发之 RxJS 关于 RxJS 是一个比较复杂的话题,我也没有完全弄明白。Angular 官网的定义如下: 响应式编程是一种面向数据流和变更传播的异步编程范式(Wikipedia)。

4.6K00

2025年了,令人唏嘘的Angular,现在怎么样了🚀🚀🚀

而此时的江湖,B端开发正尝到了 SPA 的甜头,积极的从传统的 MVC 开发模式转变为更为方便快捷的单页面应用开发模式,一拍即合,强大的一站式单页面开发框架Angular自然而然,就成了公认的武林盟主,...此时,默默耕耘了两年的小弟,Vue已经拥有完备的本地化文档和丰富的可选生态,而且作为新手你只要会使用html、css、javascript,就可以上手写项目了。...脏检查机制脏检查机制 是通过拦截异步操作,http setTimeout 用户交互事件等,触发变更检测系统,从根组件开始检查组件中数据是否有更新,有更新时,对应的 $scope 变量会被标记为 脏,然后同步的更新...响应式系统响应式系统 没有出现之前,脏检查机制 是唯一的选择,但是响应式系统凭借快速轻便的特点,立马在江湖上引起了不小的轰动,Angular也放弃了笨重的脏检查机制采用了响应式系统!...它作为一站式解决方案的框架,虽然牺牲了灵活性,但是也为开发者提供了沉浸式开发的选择!且它不断创新、积极拥抱新技术的精神令人十分钦佩!今天的内容就这些了,如果你觉得还不错,可以关注我。

7210
  • node-sass 埋坑记录

    后来,接手的新项目中: Angular-CLI:v8.x 由于升级了 Angular 版本,同样也升级了 Angular-CLI 版本,导致 v8.x 版本的 node 已经无法编译 angular 项目...在网上查了半天,跟着改,却又出现新错误 MSB4019:Microsoft.Cpp.Default.props 找不到的错误。...毕竟升级了 angular 大版本,随之而来的一些依赖库也需要跟着升级,这无可厚非,可以理解,所以当让我也升级 node-sass 时,我没啥反感。...但,我的办公网络无法访问外网啊! 虽然有内网的 Npm 仓库,但也只下载了 windows-build-tools 这个包,这包里是一堆去访问外网下载东西的脚本啊,对我来说,这解决方案没用啊!...,所以下载基本的 node 之类的库是没有问题的,上面的解决步骤也一样可以参考执行。

    4.4K10

    2018 前端趋势:更一致,更简单

    另一个值得注意的改进是共享内存和原子操作。 然而, 在暴露出他们出现浏览器侧信道攻击涉及推测执行之后,共享内存在2月5日被所有的主流浏览器暂时禁止 。...许多大公司仍旧使用旧版本的 Angular ,并由于这个原因重要的速度改进和安全修复都移植到了 AngularJS 上。...虽然 Webpack 的过人之处是配置灵活,但它牺牲了用户体验。...一个 Webpack 的 zero-config(零配置)模式已被提出,但它并没有被优先考虑,尽管像 Parcel 这样的模块打包器已经爆炸式地流行。...这跟是否是一个更好的类型系统几乎是无关的。——我敢打赌,大多数开发人员更关心的是支持和易用性。 此外,TypeScript 的社区是很大的。

    1.4K20

    2025年了,令人唏嘘的Angular,现在怎么样了

    而此时的江湖,B端开发正尝到了 SPA 的甜头,积极的从传统的 MVC 开发模式转变为更为方便快捷的单页面应用开发模式, 一拍即合,强大的一站式单页面开发框架Angular自然而然,就成了公认的武林盟主...此时,默默耕耘了两年的小弟,Vue已经拥有完备的本地化文档和丰富的可选生态,而且作为新手你只要会使用html、css、javascript,就可以上手写项目了。...脏检查机制 脏检查机制 是通过拦截异步操作,http setTimeout 用户交互事件等,触发变更检测系统,从根组件开始检查组件中数据是否有更新,有更新时,对应的 $scope 变量会被标记为 脏,然后同步的更新...响应式系统 响应式系统 没有出现之前,脏检查机制 是唯一的选择,但是响应式系统凭借快速轻便的特点,立马在江湖上引起了不小的轰动,Angular也放弃了笨重的脏检查机制采用了响应式系统!...它作为一站式解决方案的框架,虽然牺牲了灵活性,但是也为开发者提供了沉浸式开发的选择! 且它不断创新、积极拥抱新技术的精神令人十分钦佩! 今天的内容就这些了,如果你觉得还不错,可以关注我。

    11410

    新手C语言学习(1)

    归咎其原因,就是微软认为scanf不安全,于是在此之前我又在网上搜,说把scanf改成scanf_s就可以,我也就没仔细了解,反正在后面加了个_s倒是不报错了,结果在运行代码的时候,虽然可以运行,但却一直会有个弹窗...        我又去企鹅群里询问大佬,原来并不是scanf_s的问题,而是我在定义变量的时候出了问题,将一串字符串往字符变量里面怼,所以就出现了这个报错问题。...我的代码如下: #include int main(void) { //定义字符变量 char prove; //数组 字符串 char password[20] = { 0...,在代码运行窗口输入的回车,也会被当做字符而被获取,这就不得不提到缓冲区这个概念了,我们输入的东西,会先被系统放到缓冲区上,然后getchar()会在缓冲区读取我们所输入的东西,一次只能获取一个东西,因为也会把回车当做字符而获取...我还发现了一个问题就是,有时在scanf下可以顺利运行的代码,但在scanf_s上打完回车就换个行,不继续进行运行, 暂时还不知道产生的原因。

    31710

    后端程序员的Angular快速指南|TW洞见

    在NodeJS诞生之前,模块化一直是JS世界的短板,虽然也有不少相互竞争的JS模块化方案,却都没能一统江湖,这主要是因为当时的很多前端应用都过于简单,对模块化并没有迫切需求。...在那个时代,虽然尚未正式提出“前端”的概念,不过已经出现了不少事实上的前端程序。但这些前端程序相对于如今包罗万象的前端还是过于原始了,很多前端代码都只是嵌入在后端页面中的龙套。...无论是英文社区还是中文社区,都出现了一些优秀的Angular工程师,他们总结出了一些经验和教训,并给出了自己的解决之道,全凭自己的力量与热情在社区中传播。...一个人设计了三个流行的工业级语言,也真是够了。 虽然TS已经诞生了很久,但却一直没有流行起来,这主要是因为它还缺少一个“杀手级应用”。现在,Angular 2来了!...这意味着你可以完全不定义变量、属性、参数等的数据类型,TS编译器也会照样放行。 当你需要快速建立一个原型时,这种特性会非常有用,因为你不用现在就做很多决策。

    1.8K100

    新手们容易在Promise上挖的坑~

    ,他的主要贡献是解决了“回调地狱”,但其实Promise更多的是提供了一种代码结构和流程控制机制。...所以很多新手刚开始学习和使用Promise时,如果思路不能转换过来的话,经常会出现一些本末倒置的错误。...希望通过列举出下面新手的错误让大家能巩固一下关于Promise的基础知识 新手错误列举 #1 回调地狱版Promise 观察大家如何使用 PouchDB 这类大型的 promise 风格的API,我发现大量错误的...为了避免这类讨厌的场景,我习惯于像下面的代码一样使用 promise: ? 即使你坚信不会出现异常,添加一个 catch() 总归是更加谨慎的。...好了,现在是时候讨论一下关于 promises 你所需要知道的一切。 认真的说,这是一个一旦你理解了它,就会避免所有我提及的错误的古怪的技巧。你准备好了么?

    1.5K50

    学习编程的五大支柱

    学习如何编程是很困难的。我经常发现,大学课程和培训忽视了编程的重要方面,在指导新手时采用了糟糕的方法。 我想分享我认为一个成功的编程课程应该基于的5个基本支柱。...基础知识优先 我经常听说新手应该从一个框架开始。这就像教人们如何驾驶,把他们放在一辆拉力赛的赛车里,并要求他们避免过度的转向。这其实忽略了一个事实,即他们仍然把刹车误认为油门。...函数、变量、条件和循环的概念对新手来说是完全陌生的。这4个元素构成了编程的基础。程序中所有的一切都依赖于这四种元素。 学生们在刚刚开始学习编程的时候会听到这些概念,但最重要的是学生们要精通它们。...如果有人没有编程经验,那么自学是个坏主意。虽然有很多成功的故事,但我非常怀疑一个人自学的学习效率。 相反,应该有一种“师徒关系”。一开始,师傅给了师徒必须遵守的规则——盲目的!...更糟糕的是,学生们被带入了仙境,被骗去相信他们拥有他们真正无法企及的技能。 无庸置疑,老师明白这一点,但却出于激励原因而进行这种练习。 练习的主要目的不是娱乐。

    68220

    快速排序(动图单趟展示)

    在那篇论文中,Hoare描述了一种高效的排序算法,他称之为“快速排序”。这个算法的思想相对简单,但却非常高效。...Hoare提出的快速排序在当时引起了广泛的关注,并且被证明是一种非常有效的排序算法,因为它的平均时间复杂度为 O(n log n),并且在实际应用中表现出色。...动图展示: 这里最后key移到了L和R相遇的位置,从动图中可以看到,如果我选择首元素作为基准的话,那么我们就得让R先移动,这样才能保证R和L相遇的位置比key小,这里我们来证明一下: 假设有两种情况...1.R遇L: 分两种情况: 第一种也是最容易想到的一种:当R向右移动一直没有找到比key小的最后R和key重合,这也是一种情况。...第二种情况:当R移到一个比key小的元素的时候停下来了,然后L遇到了比key大的元素也停下来了,然后两个元素进行交换,交换了之后R又移动,R移动,假设与L相遇了,那么相遇的地方也是上一轮交换过去比key

    10310

    实用主义:前端IDE选择从入门到高阶

    sublimeText3经过美化后 优雅是我对sublime的第一印象,小巧,启动速度特别快,基本替代了我对文本文档的使用,虽然是闭源软件,但是有着丰富的第三方支持,能够满足各种各样的扩展。...曾经问过我自己,为什么喜欢上编程,我想我在这里找到了答案,被这些漂亮的语法高亮所吸引,配上ESlint,使得一个强迫症深深得到了满足······ 呃,不好意思跑题了。...配合Atom主题,我终于找到了Atom的替代品。...优点:最关键的就是占用内存小,启动快,这就是我想要的IDE 缺点:与其他IDE不同,VScode一个窗口下只能打开一个工程项目,并且没办法修改,因为它要使用调试,多个窗口导致变量追踪出现问题。...这里推荐atom的 ternjs 支持ES6 angular jq react的智能提示。后来发现基本的方法我都会,所以对自动补全这块不太看重了。

    1.5K120

    小数据分析:微博前端大战

    最近前端针对某些问题展开了非常激烈的讨论,作为一名围观了全过程的前端新手表示,从中学习到了很多东西。 围观之余,想尝试理性地通过数据分析进行舆论统计,从机器的角度对几位核心人物的发言进行观察。...不过再看数据的时候发现很多语义分析都是错误的: { text: '人家不在一号店了貌似,轰错地儿', positive: 0.17558500170708 }, { text: '如果没有记错的话...jQuery的意义在我看来和他自己说的主要是两点:一是更好的API,二是兼容。这两点JQ做到了极致,在上一个时代,这两点恰好是前端最痛的两个点,所以它成功了。...猜测原因是机器将这句话理解成了评价,也就是说理解成了『这条转发评价:原作者虽然看不懂但是还要占座』,导致了乌龙。...自己作为一个前端新手,双方的论战都让我受益匪浅。感谢一直奋斗在前线的同志们,也感谢一直泼冷水的前辈们。 来源:汪海的实验室 ?

    76050

    一名代码审计新手的实战经历与感悟

    又遇到了一种情况是什么呢?就是上面这幅图,明明$act没有过滤,是个可控变量,可是在这个文件中,并没有用到这个可控变量。那么,这就说明了两种情况,第一,这个文件在其他地方被引用。...虽然引用了过滤文件,但是明显是有可能突破的。假如开发者在某处执行sql语句的时候,拼接变量没有加单引号,那么int型注入就可以突破这种过滤。 其他的我这里就不一一叙述了。...简单来说,我喜欢追踪数据流,虽然挖掘漏洞的速度没有那些按功能点审计,按危险函数回溯的方法快,而且对于自定义封装的函数来说,我容易忽略这类漏洞,比如这里的getip()明显有未过滤的情况,我却忽略了,但是...具体如何复现,参考我提供的第一个文件读取漏洞。一样的原理,一样的方法。只是出现的位置不同罢了。都是由于一个可控变量$from引起的。...总结: 作为一个代码审计的新手,这虽然是我的第一次实战,但是,当我靠自己实力挖到第一个洞的时候(尽管不是高危0day,只是小漏洞),内心的喜悦是难以言表的。

    1.2K60

    国庆节前端技术栈充实计划(8):我使用 AngularJS 和 ReactJS 的经验

    然而,当一个应用的复杂度大幅度增加,一堆问题开始出现得比预期的更频繁:你可能数据更新了,但漏掉了更新某一处展现,你通过 Ajax 获取和更新了内容,但没有绑定事件,还有另外一些问题,把这些全部列出来会是个很长的清单...Flux 补充了可预测的行为和一些标准到被 React 框架约束的代码中。 3. 狂野的 Angular 出场…… ……它采用以 HTML 为中心的代码且并不超有效。 ?...最近,我开始参与一个 Angular 项目。我加入的时候这个项目已经完成了很大一部分了,所以不得不用 Angular,没有回头路。作为一个忠实的 React 开发者,我吐槽 Angular。...将框架定义的属性(或者,更恰当地说法是 directives)写入到 HTML 中的做法让我感觉很不爽。...另一个我无法吐槽的好东西是:内建的表单控制器,它为 input 字段提供了默认的格式化、解析和校验,而且还提供了一个很好的插件用来展示错误信息。

    1.4K30

    2016我的心路历程:从 Vue 到 Webpack 到 iView

    初识 Vue 第一次接触 使用 Vue.js 已经有一年半时间了,在接触 Vue 之前,有写过半年多的 Angular,所以刚了解 Vue 时,与很多开发者一样,认为 Vue 是一个轻量级的或是移动端的...运维是我的短板,Linux 不怎么熟,所以很尴尬的就是一开始只能在自己电脑上玩,到了 ECS 上就蒙了。...我刚来时,做的是一个基于百度地图 overlay 的大数据地理可视化框架 TDMap(各种原因尚未开源),贴几张图感受下吧: 之后就是我的第一个业务类项目了,也是全面运用 TDMap。...这样写的多了,问题就暴露了: 每个组件需要手动拆分html 、 js、 css 部分,维护成本高; html 需预先加载,所以会看到一个页面有一大坨的html 业务第一,一开始也就没有在意工作流,虽然麻烦...时间过得真是快,都开发 半年 了,也收获了近 3000 ★。因为是第一次做开源项目,对 Github、npm 的很多东西还不了解,虽然平时都在用,但却没发布过。

    1.4K100

    运维是个坑,盘点背锅侠的点点滴滴~

    运维是个遇坑、填坑、再遇坑、再填坑,有些时候还被同事挖坑,duang的一下掉下去了,还要自己慢慢爬坑;有些却是自己了解不够深入,或不够细心所留下来的坑。...小编认为,在实际操作中遇到了多多少少的坑,只有运维人们共享所遇到的坑,才能更快的定位与解决这些烦人的坑,所以小编针对运维这个坑准备了几个问题,下面我们就来看看网友们都有哪些精彩回答吧!...)收集信息,命令执行时间较长,在执行的过程中,我自己把问题解决了,于是联系技术支持,他叫我ctrl+C退出即可,结果我执行了之后,服务器down了。。。。。。...还有,最开始接触脚本的时候,脚本了用了rm命令,后面接的是变量,在后面是tmp目录,目的是想再某一个目录(通过变量取得)下建一个tmp目录,然后用完之后删除这个tmp目录,结果这个变量有一次没取到,然后就把根目录下的...还有,某一个内部系统使用起来非常慢,项目经理很不满意,后来我上系统上用top命令查看,发现数据库进程占用cpu达到了100%,登上数据库一看,正在执行的一个sql语句对某一个表进行查询操作,我一查,这个表几百万行

    96510

    【Angular专题】——(2)【译】Angular中的ForwardRef

    类型的变量是undefined。...这个错误提示是合理的,因为我们在定义NameService之前就在AppComponent的构造函数中使用了它,但是另一方面来看,在普通的ES5代码中就不会出现报错,因为函数声明会被Js解释器提升至作用域头部...不对Class定义进行提升的理由 先来理解一下Javascript语言的机制,Javascript解释器不进行类的提升,是因为变量提升会导致在使用extend关键字实现继承时会导致错误,例如当被继承者是一个合法的函数表达式时...从上面的示例中不难看出,如果Javascript解释器对class声明也进行提升处理,就容易在类继承时出现基类未定义的错误。 三. class在使用前必须声明吗?...五.补充 以下内容摘录自Angular中文网: 在Typescript里面,类声明的顺序很重要,如果一个类尚未定义,就不能引用它。 这通常都没有问题的,特别是遵循一个文件一个类规则的时候。

    3.2K20

    Angular ElementRef 简介

    为了能够支持跨平台,Angular 通过抽象层封装了不同平台的差异,统一了 API 接口。如定义了抽象类 Renderer 、抽象类 RootRenderer 等。...没有抛出异常,我们可以推断 this.elementRef.nativeElement 这个对象是存在,但却找不到它的子元素,那应该是在调用构造函数的时候,my-app 元素下的子元素还未创建。...[2] 这个演讲的示例。 问题解决了,但感觉不是很优雅 ?有没有更好的方案,答案是肯定的。Angular 不是有提供组件生命周期的钩子,我们可以选择一个合适的时机,然后获取我们想要的 div 元素。...功能虽然已经实现了,但还有优化的空间么?当然有咯!...我们看到设置 div 元素的背景,我们是默认应用的运行环境在是浏览器中。前面已经介绍了,我们要尽量减少应用层与渲染层之间强耦合关系,从而让我们应用能够灵活地运行在不同环境。

    1.7K60

    在前端领域摸爬滚打7年,我终于掌握了这些沉淀技巧

    尽管我没有沉迷于游戏,但我仍然被游戏所吸引。 在游戏中,我一直认为只有玩家和 NPC 的存在,但是,玩得越多,你会发现还有一些不寻常的角色,那就是“工作室”。...虽然实现了自动登录游戏的功能,但很不幸运的是,这样的小功能也还是过不去游戏的自检程序,万物皆有裨益,万事皆可为师,正是这一次编程体验促使了我后来的专业选择。...人生有时候做一个决策,一个行动,当时只道是寻常,当它的价值在未来某一刻兑现时,你会感谢当时努力的自己。 如果没有大学时翻过无数遍的《疯狂 Android 讲义》,我不可能找到这份工作。...我非常推荐各位小伙伴在工作中多承担,因为开发经验绝非是你熟背八股题得到的,开发经验只能是来自大量的项目实战。 多做练习,多遇困难,多做总结,得到的才是自己的。...ChatGPT 支持上下文连续问答模式,虽然它不能解决你所有的问题,甚至会给出错误的答案,但对于一些常规类编程问题或正在做毕业设计的小伙伴们,它还是能够显著提升效率的。

    34320

    对 王垠《对 Rust 语言的分析》的分析

    第一个 y 和 第二个 y 是两个不同的变量,只不过它们碰巧叫同一个名字而已。你甚至可以在同一行出现两个 x,而它们其实是不同的变量!这难道不是一个很酷,很灵活,其他语言都没有的设计吗?...后来我发现,虽然这实现起来没什么难度,可是这样做不但没有带来更大的方便性,反而可能引起程序的混淆不清。在同一个作用域里面,给两个不同的变量起同一个名字,这有什么用处呢?自找麻烦而已。...继续往下扫,30行代码之后我们到了引用 y 的地方,没有再看到其它对 y 的绑定,所以我们才能确信第二个 let 是 y 的定义位置,它是一个字符串。 这难道不是很费事吗?...在看 C# 代码的时候,我经常看到一堆的变量定义,每一个的前面都是 var。我没法一眼就看出它们表示什么,是整数,bool,还是字符串,还是某个用户定义的类? 这点好像说的很有道理。...Rust 允许你把这种毫无意义的返回值赋给一个变量,这种错误就没有被及时发现,反而能够通过变量传播到另外一个地方去。

    2.3K20
    领券