gpt4 book ai didi

string - F#字符串操作的优化

转载 作者:行者123 更新时间:2023-12-04 13:02:55 26 4
gpt4 key购买 nike

我刚刚学习 F#,并且一直在将 C# 扩展方法库转换为 F#。我目前正在基于 实现一个名为 ConvertFirstLetterToUppercase 的函数。下面的 C# 实现 :

public static string ConvertFirstLetterToUppercase(this string value) {
if (string.IsNullOrEmpty(value)) return value;
if (value.Length == 1) return value.ToUpper();
return value.Substring(0, 1).ToUpper() + value.Substring(1);
}

F# 实现
[<System.Runtime.CompilerServices.ExtensionAttribute>]
module public StringHelper
open System
open System.Collections.Generic
open System.Linq

let ConvertHelper (x : char[]) =
match x with
| [| |] | null -> ""
| [| head; |] -> Char.ToUpper(head).ToString()
| [| head; _ |] -> Char.ToUpper(head).ToString() + string(x.Skip(1).ToArray())

[<System.Runtime.CompilerServices.ExtensionAttribute>]
let ConvertFirstLetterToUppercase (_this : string) =
match _this with
| "" | null -> _this
| _ -> ConvertHelper (_this.ToCharArray())

有人可以使用更自然的 F# 语法向我展示更简洁的实现吗?

最佳答案

open System

type System.String with
member this.ConvertFirstLetterToUpperCase() =
match this with
| null -> null
| "" -> ""
| s -> s.[0..0].ToUpper() + s.[1..]

用法:
> "juliet".ConvertFirstLetterToUpperCase();;
val it : string = "Juliet"

关于string - F#字符串操作的优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3398991/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com