从c#数组求和说起
c#是一种玩具语言
为什么这么说,
举个简单的例子,提问:对数组[1,2,3]求和有几种方法?
我能说出来的,四种。说出来,不是上网查出来。
for,foreach,sum,while。
for好像大家都不提倡,foreach举例的时候用到比较多,sum是牛逼哄哄的各路”老师“推荐最多的用法,为什么说”老师"要加引号,因为到现在为止没见到谁用sum的时候考虑集合为空的情况,而集合为空的时候sum会抛异常。
foreach呢,枚举,牛逼吧。。。现在我加一个条件,第二个数如果等于1要求退出循环,foreach怎么办?正确的写法是,先int 一个Index ,在循环体外面,循环体里递增,index==2的时候判断。定义在循环体外面! 我还能说什么?本身就没带来多少可读性的语法糖,简直是bug一样的存在。
foreach和yield联用能提供一种伪enumable,使非集合的变量提供一种伪集合的效果。等等,等等。这好像是框架应该做的事情吧,不是语言应该做的吧?这是任何需要的场合程序员都能自己做出来的效果吧?我定义个伪集合类和for联用不能达到这个效果吗?
好的,不重复发明轮子,好的。c#和基础类库加起来其实就是个开发框架,好的。
厉害,语言和框架本身是一体的。
那么请你把for移除出去,sum也移除出去吧。同样的逻辑,四种不同的写法,各自有各自的优缺点,这样还不算是重复发明轮子吗?能不能集中力量把foreach完善好,加一个类似于获取当前index的功能,或者把sum完善好,让它增加一个默认值。 现在维护的时候要同时记四套方案各自优缺点,何必呢?其实foreach sum提供的优化,跟真正的应用框架完全不能相比,企业级的应用在做框架的时候,肯定还得写自己的一大堆方法,就好比说我是鲁迅笔下的小伙计,我希望茴香豆的茴字,当然是只有一种写法最好最好,记账本来就是体力活,为什么还要在字体写法上增加复杂度,你奶奶的,会四种写法对除了孔乙己外其他人都么用。
类库是有不少,java也有啊?那种成功的语言没有类库?只要开发一次就有了,这些微软是做了,他不做,也一定会有人做。然后呢,网络请求多少种写法,webrequest,webclient,httpclient?其实变成字节流以后原理都差不多好不好?我现在要记你那么多方法才能维护好代码,我还不如直接放弃这种语言,找一种简单的语言,然后把原理搞清楚,有类库用类库,没有类库就自己写,对于资深程序而言那样更有积累性好不好?
从c#数组求和说起的更多相关文章
- js数组求和
array1.reduce(callbackfn[, initialValue]) callback : 函数执行在数组中每个值 initialValue : 对象作为第一个参数回调的第一次调用使用 ...
- 《Intel汇编第5版》 数组求和
一.LOOP指令 二.间接寻址 三.汇编数组求和 INCLUDE Irvine32.inc includelib Irvine32.lib includelib kernel32.lib includ ...
- Javascript数组求和的方法总结 以及由斐波那契数列得到的启发
一次面试中,面试官要求用三种不同的Javascript方法进行一个数字数组的求和,当时思来想去只想到了使用循环这一种笨方法,因此面试比较失败,在这里总结了六种Javascript进行数组求和的方法,以 ...
- [java大数据面试] 2018年4月百度面试经过+三面算法题:给定一个数组,求和为定值的所有组合.
给定一个数组,求和为定值的所有组合, 这道算法题在leetcode应该算是中等偏下难度, 对三到五年工作经验主要做业务开发的同学来说, 一般较难的也就是这种程度了. 简述经过: 不算hr面,总计四面, ...
- 个人项目-数组求和(语言:C++)
prog1详细要求: [第一版本程序Prog1要求:] + 给定一个数组,实现数组元素求和:,具体要求:实现对一维数组(a[100])的所有元素相加运算. + 数据准备:a)数组长度:100:b)数组 ...
- 【原】C++11并行计算 — 数组求和
本文转载请注明出处 -- polobymulberry-博客园 0x00 - 前言 最近想优化ORB-SLAM2,准备使用并行计算来提高其中ORB特征提取的速度.之前对并行计算方面一窍不通.借此机会, ...
- js 数组求和,多种方法,并比较性能
可以借用下面12种方法对数组求和,创建一个长度为10w的数组,进行测试 every() 检测数值元素的每个元素是否都符合条件. filter() 检测数值元素,并返回符合条件所有 ...
- reduce实现数组求和
对于实现数组求和,我们常用的思路是通过for.while,对数组进行迭代,依次将他们的值加起来,下面列举常用的两种方法 第一种: var arr = [1,2,3,4,5,6]; Array.prot ...
- Java并发和多线程2:3种方式实现数组求和
本篇演示3个数组求和的例子. 例子1:单线程例子2:多线程,同步求和(如果没有计算完成,会阻塞)例子3:多线程,异步求和(先累加已经完成的计算结果) 例子1-代码 package cn.fansuni ...
- Java实现不遍历数组求和
package com.jts.t1; /** * 不遍历数组求和 * 方法省略异常检查 */ public class Demo1 { public static void main(String[ ...
随机推荐
- NOIP初赛 BLESS ALL!
祝初赛顺利!RP++! 下午再写一篇题解来加RP
- Maven 打jar包,pom文件配置
以下是pom.xml文件的相关配置. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="h ...
- web端ip定位
1/新浪定位 <script src="http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js">&l ...
- XE里, TStringField 还是 ansi的
{ TStringField } TStringField = class(TField) private FFixedChar: Boolean; FTransliterate: Boolean; ...
- 所谓的规范以及JDK api文档的重要性
所谓的规范,就是在jee api 文档里对应的接口. 可以从jdk文档和jee文档的目录结构,接口中获取对整个编程范围的把握
- EXCEL FAQ
1.win7双击打开EXCEL07时显示停止工作,但是在打开方式中可以打开,怎么破? 加载项的问题,在选项-信任中心-信任中心设置-加载项-禁用所有应用程序加载项即可,但是这样会丧失一些功能,也可以把 ...
- vue和微信小程序的区别、比较
链接:https://segmentfault.com/a/1190000015684864 一.生命周期 先贴两张图: vue生命周期 小程序生命周期 相比之下,小程序的钩子函数要简单得多. vue ...
- Java中的容器和注入分析
为什么会出现容器的注入? 容器:顾名思义,装东西的器物. 至于spring中bean,aop,ioc等一些都只是实现的方式:具体容器哪些值得我们借鉴,我个人觉得是封装的思想.将你一个独立的系统功能放到 ...
- Java中统计字符串中各个字符出现的次数
import java.util.Iterator; import java.util.Set; import java.util.TreeMap; public class TreeMapDemo ...
- 微信小程序代码片段
微信小程序代码片段是一种可分享的小项目,可用于分享小程序和小游戏的开发经验.展示组件和 API 的使用.复现开发问题等等.分享代码片段会得到一个链接,所有拥有此分享链接的人可以在工具中导入此代码片段. ...