当前位置: 首页 > Web前端 > JavaScript

一个JSer的Dart学习日志(六):写一个向量

时间:2023-03-27 12:10:39 JavaScript

给读者顺利过渡到Dart语言。如无特殊说明,本文JS包含ES5到ES2021的所有特性,Dart版本为2.0及以上版本。由于笔者还是Dart初学者,理解可能比较肤浅和片面,难免会忽略知识的泛化。本系列文章首发于丝芙兰平台。虽然没有限制在其他平台转载,但勘误和新增内容仅限于四佛。如果你在别处看到这篇文章,请移步至四方,以免看到未修改的版本。内容。自从挖了这个系列,上一次填坑还是在去年。老实说,Dart已经完全忘记了它。所以根据前面挖的进度,这篇文章应该学习一下Dart的数据采集方式Map或者List,但是我想巩固一下所学的,所以还是先尝试搭建一些东西。vector的实现(JS&&Dart)1.类声明使用数组/列表来存储vector的值。这样做的好处是向量可以有任意维数。JS:classVector{#values=[];constructor(values=[]){this.#values=values.地图(项目=>+项目);}}Dart:Vector类{List_values;constVector(this._values);}2。向量到数组/列表将向量转换为数组/列表。JS:getValues(){returnthis.#values.map(item=>item);}Dart:ListgetValues(){return_values.map((item)=>item).toList();}3.读取指定维度的值这里的维度其实就是一个序号,是数组/列表的下标。JS:getVal(index=0){returnthis.#values[index];}DartdoublegetVal([intindex=0]){return_values[index];}4.向量加法两个等长向量相加,得到一个新的向量。JS:add(obj){constobjVals=obj.getValues();returnthis.#values.map((item,index)=>item+objVals[index]);}Dart:Vectoroperator+(Vectorobj){finalobjVals=obj.getValues();intcnt=0;return_values.map((item)=>item+objVals[cnt++]).toList();}向量的减法是改变符号,所以省略。