你能改进F#中的“代码行算法”吗?我写了一个小脚本来遍历文件夹中的文件以计算代码行数。脚本的核心是计算空格、注释和代码行数的函数。(请注意,它目前是为C#量身定制的,不支持多行注释)。它对我来说看起来不太好-有人有更清洁的版本吗?//从字符串列表返回元组,计数为(空白,注释,代码)letloc(arr:List)=letinnerloc(whitesp,comment,code)(l:string)=lets=l.Trim([|'';'|])//删除前导空格匹配s与|""->(whitesp+1,comment,code)//空行|"{"->(whitesp+1,comment,code)//打开块|"}"->(whitesp+1,comment,code)//关闭块|_当s.StartsWith("#")->(whitesp+1,comment,code)//regions|_当s.StartsWith("//")->(whitesp,comment+1,code)//comments|_->(whitesp,comment,code+1)List.fold_leftinnerloc(0,0,0)arr我认为你所拥有的很好,但这里有些混乱。(此解决方案重复了您忽略尾随空格的问题。)类型线=|空格=0|评论=1|Code=2letClassify(l:string)=lets=l.TrimStart([|'';'t'|])将s与|匹配""|“{”|"}"->Line.Whitespace|_当s.StartsWith("#")->Line.Whitespace|_当s.StartsWith("//")->Line.Comment|_->线。代码letLoc(arr:list)=letsums=Array.create30arr|>List.iter(funline->leti=Classifyline|>intsums.[i]"Classify"asaseparateentity可能是在另一个上下文中有用。一个更好的网站可能是refactormycode-它是专门为这类问题量身定制的。除了你会把带有尾随空格的单个大括号算作代码而不是空格之外,看不到它。错误太多.以上就是C#学习教程:Canyouimprovethe'codelinealgorithminF#?全部内容分享,如果对大家有用,需要详细了解C#学习教程,希望大家多多关注—本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除,转载请注明出处:
