返回顶部
首页 > 资讯 > 后端开发 > GO >从任何值类型的字典中获取字符串键的切片
  • 895
分享到

从任何值类型的字典中获取字符串键的切片

2024-04-05 00:04:36 895人浏览 八月长安
摘要

学习golang要努力,但是不要急!今天的这篇文章《从任何值类型的字典中获取字符串键的切片》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所

学习golang要努力,但是不要急!今天的这篇文章《从任何值类型的字典中获取字符串键的切片》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

问题内容

我想编写一个函数来从映射中获取所有键作为字符串切片,其中键类型是字符串,值可以是任何其他类型。

像这样,但可以有任何类型的地图[字符串]...作为输入。

func mapLowCaseKeys(v map[string]string) []string {
    keys := make([]string, len(v))
    i := 0
    for key := range v {
        keys[i] = strings.ToLower(key)
        i++
    }
    return keys
}

实际上我想在javascript中实现object.keys()

我尝试使用 map[string]interface{} 作为函数的参数类型,但它不能只将任何特定映射传递给该函数,这在 golang 中可能吗?


解决方案


您可以使用 reflect 包中的 mapkeys 来执行此操作(参考:https://golang.org/pkg/reflect/#Value.MapKeys)。

mapkeys 返回一个切片,其中包含映射中存在的所有键(按未指定的顺序)。如果 v 的 kind 不是 map,它会发生恐慌。如果 v 表示 nil 映射,则它返回一个空切片。

下面给出了一个例子(演示链接:Https://play.golang.org/p/xhDtmbGUyz0):

package main

import (
    "fmt"
    "reflect"
)

func main() {
    fmt.Println(mapLowCaseKeys(map[string]float64{
        "key1" : 1.2,
    }))

    fmt.Println(mapLowCaseKeys(map[string]interface{} {
        "key1" : 1.2,
        "key2" : map[string]string{"kk": "3"},
    }))

    fmt.Println(mapLowCaseKeys(map[int]float64{
         11 : 1.2,
    }))

    fmt.Println(mapLowCaseKeys(nil))
}

func mapLowCaseKeys(v interface{}) []string {
    keys := []string{}
    value := reflect.ValueOf(v)
    if value.Kind() == reflect.Map {
        for _, v := range value.MapKeys() {
            if v.Kind() == reflect.String {
                keys = append(keys, v.String())
            }
        }
        return keys
    } else {
        fmt.Println("it is not a map!!")
        return keys
    }
}

终于介绍完啦!小伙伴们,这篇关于《从任何值类型的字典中获取字符串键的切片》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~编程网公众号也会发布Golang相关知识,快来关注吧!

您可能感兴趣的文档:

--结束END--

本文标题: 从任何值类型的字典中获取字符串键的切片

本文链接: https://lsjlt.com/news/595806.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 从任何值类型的字典中获取字符串键的切片
    学习Golang要努力,但是不要急!今天的这篇文章《从任何值类型的字典中获取字符串键的切片》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所...
    99+
    2024-04-05
  • JavaScript如何从字符串中获取字符
    这篇文章主要为大家展示了“JavaScript如何从字符串中获取字符”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript如何从字符串中获取字符”这篇文章吧。 从字符串中获...
    99+
    2023-06-27
  • 将字符串转换为字符串值的类型
    php小编百草在这里为大家介绍如何将字符串转换为不同类型的值。在编程中,我们经常需要将字符串转换为其他类型,比如整数、浮点数、布尔值等。PHP提供了一系列内置的函数和方法来实现这个转换...
    99+
    2024-02-11
  • python怎么赋值字符串的切片
    要将字符串的切片赋值给一个新的变量,可以使用以下语法: new_string = old_string[start:end] 其中,...
    99+
    2023-10-26
    python
  • json字符串获取键值的方法是什么
    可以使用`JSON.parse()`函数将JSON字符串转换为JavaScript对象,然后可以通过对象的键来获取对应的值。例如,假...
    99+
    2023-10-10
    json
  • python如何获取字典的值
    使用python获取字典值的方法:1.新建python项目;2.定义字典,并赋值;3.使用values()方法获取字典值;具体步骤如下:首先,打开python,并新建一个python项目;python项目创建好后,在项目中定义一个字典,并赋...
    99+
    2024-04-02
  • python如何获取字典中最大值对应的键
    这篇文章给大家分享的是有关python如何获取字典中最大值对应的键的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。获取字典中最大值对应的键有时需要在字典中找出最大值对应的键。首先,在所有值列表中找到最大值的索引,然...
    99+
    2023-06-27
  • 基本的数据类型(数字、字符串、列表、字典
    一、数字NUMBER   int 整形   float 浮点型 a = 12 b = 3.1 print(type(a),type(b)) #结果 <class 'int'> <class 'float'> ...
    99+
    2023-01-30
    字符串 字典 数据类型
  • Python中怎么获取字典的值
    Python中怎么获取字典的值,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。字典是启蒙教育时期,大家不可获取的好帮手字典是无序的术语和定义的集合,这意味着:&a...
    99+
    2023-06-16
  • c#中如何获取指定字符前的字符串
    目录c#获取指定字符前的字符串问题描述解决方案c#去除字符串前后任意指定字符总结c#获取指定字符前的字符串 问题描述 Combobox的值为:100088|仓库编码1,如何将截取指定...
    99+
    2023-03-03
    c#获取字符串 c#指定字符 c#字符串
  • 根据字符在字符串中的位置获取字符
    大家好,今天本人给大家带来文章《根据字符在字符串中的位置获取字符》,文中内容主要涉及到,如果你对Golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!问题内容pack...
    99+
    2024-04-04
  • python获取字符串中的email
     调用re库,通过使用compile、findall获取字符串中的email import re email=re.compile(r'[a-z0-9\-\.]+@[0-9...
    99+
    2024-04-02
  • Mysql字符串截取及获取指定字符串中的数据
    前言:本人遇到一个需求,需要在MySql的字段中截取一段字符串中的特定字符,类似于正则表达式的截取,苦于没有合适的方法,百度之后终于找到一个合适的方法:substring_index('www.sqlstu...
    99+
    2024-04-02
  • java提取字符串中的数字string,获取字符串中的整数或小数
    方法一:提取字符串中的数字 // 提取字符串中的数字 public static String extractNumbers(String input) { return input.replaceAll("[^0-9]...
    99+
    2023-08-16
    java 开发语言 jvm
  • mysql怎么获取字符串中的汉字
    在MySQL中获取字符串中的汉字可以使用正则表达式来匹配汉字的Unicode编码范围。以下是一个示例: SELECT REGEXP_...
    99+
    2024-04-09
    mysql
  • oracle怎么获取字符串中的数字
    在Oracle中,您可以使用REGEXP_REPLACE函数来提取字符串中的数字。以下是一个示例: SELECT REGEX...
    99+
    2024-04-09
    oracle
  • c#怎么获取字符串中的数字
    从 c# 字符串中提取数字的方法有五种:正则表达式、循环和 char.isdigit()、int.tryparse()、string.split() 和 int.parse()、linq...
    99+
    2024-05-14
    git c#
  • java如何获取字符串的字节数
    在Java中,可以使用getBytes()方法来获取字符串的字节数。这个方法返回一个字节数组,其中包含了字符串的字节表示。示例代码如...
    99+
    2023-09-11
    java
  • 怎么使用Python获取字典键对应的值
    这篇文章主要介绍了怎么使用Python获取字典键对应的值的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Python获取字典键对应的值文章都会有所收获,下面我们一起来看看吧。当知道字典的键时:unit_r...
    99+
    2023-06-30
  • Python 中的反转字符串reversed(),切片
    目录一、使用核心 Python 工具反转字符串二、通过切片反转字符串三、使用.join()和反转字符串reversed()四、手动生成反转字符串五、反转循环中的字符串六、用递归反转字...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作