func GetFieldsUsed2(fs []string, include, exclude string) (r []string) {
	includes := strings.Split(include, ",")
	excludes := strings.Split(exclude, ",")
	for _, key := range fs {
		keyString := String(key)
		// exist include and not in include, skip
		if include != "" && !keyString.IsInArrayIgnoreCase(includes) {
			continue
		}
		// in exclude, skip
		if keyString.IsInArrayIgnoreCase(excludes) {
			continue
		}
		if keyString.IsContainIgnoreCase("id") || keyString.IsContainIgnoreCase("password") {
			continue
		}
		r = append(r, key)
	}
	return
}
// GetFieldsUsed2
// Order by fs
GetFieldsUsed2
Order by fs
// GetFieldsUsed2 // Order by fs
func GetFieldsUsed2(fs []string, include, exclude string) (r []string) {
	includes := strings.Split(include, ",")
	excludes := strings.Split(exclude, ",")
	for _, key := range fs {
		keyString := String(key)
		if include != "" && !keyString.IsInArrayIgnoreCase(includes) {
			continue
		}
		if keyString.IsInArrayIgnoreCase(excludes) {
			continue
		}
		if keyString.IsContainIgnoreCase("id") || keyString.IsContainIgnoreCase("password") {
			continue
		}
		r = append(r, key)
	}
	return
}
func GetFieldsUsed2 ( fs [ ] string , include , exclude string ) ( r [ ] string ) { includes := strings . Split ( include , " " ) excludes := strings . Split ( exclude , " " ) for _ , key := range fs { keyString := String ( key ) if include != " " && ! keyString . IsInArrayIgnoreCase ( includes ) { continue } if keyString . IsInArrayIgnoreCase ( excludes ) { continue } if keyString . IsContainIgnoreCase ( " " ) || keyString . IsContainIgnoreCase ( " " ) { continue } r = append ( r , key ) } return }
GetFieldsUsed2
Order by fs
GetFieldsUsed2 Order by fs
// exist include and not in include, skip // in exclude, skip