Giter Site home page Giter Site logo

Comments (9)

yguilai avatar yguilai commented on May 18, 2024 1

关于第2点提了一个PR #89 , 顺带上了一些之前写好的XD @zundaren @duke-git

from lancet.

yguilai avatar yguilai commented on May 18, 2024
  1. 常用字符串截取可以使用以下方式
str := "foo bar"
substring := str[0:2]
  1. 这个可以新增个函数
  2. 数组,find建议在提供一个原始数据查找 可以举个例子吗
  3. 包名过长可以起别名呀, 不能随意改包名, 需要保持向后兼容

from lancet.

duke-git avatar duke-git commented on May 18, 2024
  1. 常用字符串截取可以使用以下方式
str := "foo bar"
substring := str[0:2]
  1. 这个可以新增个函数
  2. 数组,find建议在提供一个原始数据查找 可以举个例子吗
  3. 包名过长可以起别名呀, 不能随意改包名, 需要保持向后兼容

👍,合理建议,兼容性很重要。

from lancet.

zundaren avatar zundaren commented on May 18, 2024
  1. 常用字符串截取可以使用以下方式
str := "foo bar"
substring := str[0:2]
  1. 这个可以新增个函数
  2. 数组,find建议在提供一个原始数据查找 可以举个例子吗
  3. 包名过长可以起别名呀, 不能随意改包名, 需要保持向后兼容

数组那个我存个 1 2 3, find是匹配就返回原始数据1,存指针就返回指针,这样

from lancet.

duke-git avatar duke-git commented on May 18, 2024
  1. 常用字符串截取可以使用以下方式
str := "foo bar"
substring := str[0:2]
  1. 这个可以新增个函数
  2. 数组,find建议在提供一个原始数据查找 可以举个例子吗
  3. 包名过长可以起别名呀, 不能随意改包名, 需要保持向后兼容

数组那个我存个 1 2 3, find是匹配就返回原始数据1,存指针就返回指针,这样

是的,当初如此设计是考虑到未找到值时返回nil, 否则会返回零值。不过可以根据第二个返回值(bool)判断是否查找到。这个可以做个break change, 重新release.

from lancet.

yguilai avatar yguilai commented on May 18, 2024
  1. 常用字符串截取可以使用以下方式
str := "foo bar"
substring := str[0:2]
  1. 这个可以新增个函数
  2. 数组,find建议在提供一个原始数据查找 可以举个例子吗
  3. 包名过长可以起别名呀, 不能随意改包名, 需要保持向后兼容

数组那个我存个 1 2 3, find是匹配就返回原始数据1,存指针就返回指针,这样

是的,当初如此设计是考虑到未找到值时返回nil, 否则会返回零值。不过可以根据第二个返回值(bool)判断是否查找到。这个可以做个break change, 重新release.

可以新增一个如下函数, 让go自己初始化零值

func FindBy[T any](slice []T, predicate func(index int, item T) bool) (v T, ok bool) {
	index := -1

	for i, v := range slice {
		if predicate(i, v) {
			index = i
			break
		}
	}

	if index == -1 {
		return v, false
	}

	return slice[index], true
}

from lancet.

duke-git avatar duke-git commented on May 18, 2024
  1. 常用字符串截取可以使用以下方式
str := "foo bar"
substring := str[0:2]
  1. 这个可以新增个函数
  2. 数组,find建议在提供一个原始数据查找 可以举个例子吗
  3. 包名过长可以起别名呀, 不能随意改包名, 需要保持向后兼容

数组那个我存个 1 2 3, find是匹配就返回原始数据1,存指针就返回指针,这样

是的,当初如此设计是考虑到未找到值时返回nil, 否则会返回零值。不过可以根据第二个返回值(bool)判断是否查找到。这个可以做个break change, 重新release.

可以新增一个如下函数, 让go自己初始化零值

func FindBy[T any](slice []T, predicate func(index int, item T) bool) (v T, ok bool) {
	index := -1

	for i, v := range slice {
		if predicate(i, v) {
			index = i
			break
		}
	}

	if index == -1 {
		return v, false
	}

	return slice[index], true
}

这样不错,可以避免兼容性问题。然后将之前的Find/FindLast都标记为deprecated.

from lancet.

yguilai avatar yguilai commented on May 18, 2024
  1. 常用字符串截取可以使用以下方式
str := "foo bar"
substring := str[0:2]
  1. 这个可以新增个函数
  2. 数组,find建议在提供一个原始数据查找 可以举个例子吗
  3. 包名过长可以起别名呀, 不能随意改包名, 需要保持向后兼容

数组那个我存个 1 2 3, find是匹配就返回原始数据1,存指针就返回指针,这样

是的,当初如此设计是考虑到未找到值时返回nil, 否则会返回零值。不过可以根据第二个返回值(bool)判断是否查找到。这个可以做个break change, 重新release.

可以新增一个如下函数, 让go自己初始化零值

func FindBy[T any](slice []T, predicate func(index int, item T) bool) (v T, ok bool) {
	index := -1

	for i, v := range slice {
		if predicate(i, v) {
			index = i
			break
		}
	}

	if index == -1 {
		return v, false
	}

	return slice[index], true
}

这样不错,可以避免兼容性问题。然后将之前的Find/FindLast都标记为deprecated.

同样的, datastructure包的一些方法也可以做类似调整, 如datastructure/list/list.go:29

from lancet.

duke-git avatar duke-git commented on May 18, 2024

v2.1.20已发布,包含上述新方法。

from lancet.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.