V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
songdg
V2EX  ›  程序员

当函数需要返回很多变量时的烦恼

  •  
  •   songdg · 2019-11-21 10:44:18 +08:00 · 3476 次点击
    这是一个创建于 1863 天前的主题,其中的信息可能已经有所发展或是发生改变。

    当函数需要返回很多变量时有没有什么优雅的写法,想过将变量放进数组里。

    第 1 条附言  ·  2019-11-21 16:51:34 +08:00
    谢谢大家的回复,之所以没写语言是想看看各大语言的处理方法。
    21 条回复    2019-11-22 08:31:24 +08:00
    wutiantong
        1
    wutiantong  
       2019-11-21 10:55:08 +08:00
    既然你连语言都没写,这里有个万能解:序列化,返回字节流或者文件路径。
    lihongjie0209
        2
    lihongjie0209  
       2019-11-21 10:56:58 +08:00
    tuple 可解

    java 用 vavr

    python 自带
    CrisTao
        3
    CrisTao  
       2019-11-21 11:12:19 +08:00
    map 就可以了啊
    laike9m
        4
    laike9m  
       2019-11-21 11:12:46 +08:00 via Android
    语言?
    coderluan
        5
    coderluan  
       2019-11-21 11:19:40 +08:00
    封装
    augustheart
        6
    augustheart  
       2019-11-21 11:22:51 +08:00
    返回一个对象
    wysnylc
        7
    wysnylc  
       2019-11-21 11:34:15 +08:00
    返回对象
    如果是要附带返回异常信息请用 exception+try-catch
    不要写 map 会导致方法不可读无语义
    sagaxu
        8
    sagaxu  
       2019-11-21 11:42:35 +08:00 via Android
    Kotlin,两个用 Pair,三个用 Triple,四个以上建议定义一种类型
    GPLer
        9
    GPLer  
       2019-11-21 11:50:46 +08:00 via Android
    用 lua
    hyperbin
        10
    hyperbin  
       2019-11-21 11:54:09 +08:00 via Android
    写题目完自己都不读一下吗?
    ipwx
        11
    ipwx  
       2019-11-21 12:00:59 +08:00 via Android
    场景不说,语言不说,你想让咱回答杀啥
    ochatokori
        12
    ochatokori  
       2019-11-21 12:13:48 +08:00 via Android
    js ?对象数组随便挑
    yuyu2140
        13
    yuyu2140  
       2019-11-21 12:29:54 +08:00
    不就是解构声明吗
    EminemW
        14
    EminemW  
       2019-11-21 12:30:17 +08:00 via iPhone
    Json 或者 map 不行吗
    bearxu
        15
    bearxu  
       2019-11-21 13:08:03 +08:00
    tuple<................>
    crclz
        16
    crclz  
       2019-11-21 13:42:49 +08:00
    public (int, string, int) SomeCsharpFunction(){
    return (1,"2",3)
    }
    Fuste
        17
    Fuste  
       2019-11-21 15:09:31 +08:00
    我觉得构造一个类或者结构体比较好,返回动态结构不太利于维护和可读性
    ahojcn
        18
    ahojcn  
       2019-11-21 16:44:01 +08:00
    struct
    class
    global var
    annielong
        19
    annielong  
       2019-11-21 16:54:41 +08:00
    通用就上 string 数组,不通用就建 class,简单粗暴,兼容
    beyondex
        20
    beyondex  
       2019-11-21 17:12:00 +08:00 via Android
    c# 用元组,有需要还可以给多个对象分别命名。
    levelworm
        21
    levelworm  
       2019-11-22 08:31:24 +08:00 via Android
    话说为何需要有很多返回值?能否从设计上改变呢?好奇
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3427 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:36 · PVG 18:36 · LAX 02:36 · JFK 05:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.