{"id":207015,"date":"2025-07-08T08:31:34","date_gmt":"2025-07-08T00:31:34","guid":{"rendered":"https:\/\/server.hk\/cnblog\/207015\/"},"modified":"2025-07-08T08:31:34","modified_gmt":"2025-07-08T00:31:34","slug":"%e6%9e%84%e9%80%a0%e5%a5%87%e6%80%aa%e7%9a%84%e8%a1%8c%e4%b8%ba","status":"publish","type":"post","link":"https:\/\/server.hk\/cnblog\/207015\/","title":{"rendered":"\u6784\u9020\u5947\u602a\u7684\u884c\u4e3a"},"content":{"rendered":"<p><b><\/b> <\/p>\n<p>\u5f53\u524d\u4f4d\u7f6e\uff1a <span>&gt;<\/span> <span>&gt;<\/span> <span>&gt;<\/span> <span>&gt;<\/span> <span>\u6784\u9020\u5947\u602a\u7684\u884c\u4e3a<\/span><\/p>\n<p><span>\u6765\u6e90\uff1astackoverflow<\/span><br \/>\n<span>2024-04-19 15:09:36<\/span><br \/>\n<span><i><\/i>0\u6d4f\u89c8<\/span><br \/>\n<span style=\"cursor: pointer\"><i><\/i>\u6536\u85cf<\/span> <\/p>\n<p>\u4ece\u73b0\u5728\u5f00\u59cb\uff0c\u6211\u4eec\u8981\u52aa\u529b\u5b66\u4e60\u5566\uff01\u4eca\u5929\u6211\u7ed9\u5927\u5bb6\u5e26\u6765<span style=\"color: #FF6600;, Helvetica, Arial, sans-serif;font-size: 14px;background-color: #FFFFFF\">\u300a\u6784\u9020\u5947\u602a\u7684\u884c\u4e3a\u300b<\/span>\uff0c\u611f\u5174\u8da3\u7684\u670b\u53cb\u8bf7\u7ee7\u7eed\u770b\u4e0b\u53bb\u5427\uff01\u4e0b\u6587\u4e2d\u7684\u5185\u5bb9\u6211\u4eec\u4e3b\u8981\u4f1a\u6d89\u53ca\u5230<span style=\"color: #FF6600;, Helvetica, Arial, sans-serif;font-size: 14px;background-color: #FFFFFF\"><\/span>\u7b49\u7b49\u77e5\u8bc6\u70b9\uff0c\u5982\u679c\u5728\u9605\u8bfb\u672c\u6587\u8fc7\u7a0b\u4e2d\u6709\u9047\u5230\u4e0d\u6e05\u695a\u7684\u5730\u65b9\uff0c\u6b22\u8fce\u7559\u8a00\u5440\uff01\u6211\u4eec\u4e00\u8d77\u8ba8\u8bba\uff0c\u4e00\u8d77\u5b66\u4e60\uff01<\/p>\n<p> \u95ee\u9898\u5185\u5bb9<br \/>\n <\/p>\n<p>\u6211\u521a\u521a\u5f00\u59cb\u4f7f\u7528 go-lang\uff0c\u53d1\u73b0\u4e86\u5b83\u7684 structs \u7684\u5947\u602a\u884c\u4e3a\u3002\u6211\u6709\u4e00\u4e2a struct <code>a<\/code> \u548c\u53e6\u4e00\u4e2a struct <code>b<\/code>\uff0c\u5728 struct <code>b<\/code> \u4e2d\u5b9a\u4e49\u4e00\u4e2a\u952e\u4e3a <code>[]a<\/code> \u95ee\u9898\u662f\u5728\u5c06 <code>b<\/code> \u7684\u65b0\u5b9e\u4f8b\u7c7b\u578b\u7684\u503c\u5206\u914d\u4e3a <code>a<\/code> \u7684\u5143\u7d20\u65f6\u629b\u51fa\u5c3d\u7ba1\u7c7b\u578b\u76f8\u540c\uff0c\u4f46\u4ecd\u51fa\u9519\u3002\u4efb\u4f55\u5e2e\u52a9\u5c06\u4e0d\u80dc\u611f\u6fc0 \u4e0b\u9762\u6211\u7c98\u8d34\u4e86\u5bfc\u81f4\u9519\u8bef\u7684\u6700\u5c0f\u4ee3\u7801<\/p>\n<pre>package main\n\nimport (\n    \"fmt\"\n    \"math\"\n    \"github.com\/shirou\/gopsutil\/disk\"\n    \"strconv\"\n)\n\nfunc main() {\n\n    \/************ disk details goes here ************\/\n    diskPartitions, err := disk.Partitions(true)\n    dealwithErr(err)\n    fmt.Println(diskPartitions)\n\n    type PARTITIONLIST []PARTITION\n    var partitionsList PARTITIONLIST\n\n    for partitionIndex, partition := range diskPartitions {\n        partitionStat, err := disk.Usage(partition.Mountpoint)\n        dealwithErr(err)\n\n        var partitionDetails = PARTITION{\n            \"PARTITION\",\n            partitionIndex,\n            partition.Mountpoint,\n            \"\" + fmt.Sprint(partitionStat.Total) + \" and \" + bytesToSize(partitionStat.Total),\n            \"\" + fmt.Sprint(partitionStat.Used) + \" and \" + bytesToSize(partitionStat.Used),\n            \"\" + fmt.Sprint(partitionStat.Free) + \" and \" + bytesToSize(partitionStat.Free),\n            \"\" + fmt.Sprint(partitionStat.UsedPercent) + \"and \" + strconv.FormatFloat(partitionStat.UsedPercent, 'f', 2, 64),\n        }\n\n        partitionsList = append(partitionsList, partitionDetails)\n    }\n\n    \/\/till here working fine\n    fmt.Println(partitionsList)\n\n    \/\/THE BELOW TWO LINES ERROR IS THE ACTUAL ERROR I AM ASKING\n    var partitionDetails = PARTITIONS{\n        \"partitions\",\n        partitionsList\n    }\n\n\n\n    dealwithErr(err)\n}\n\n\/************ all struct goes here ************\/\n\ntype PARTITION struct {\n    Name                   string\n    Partition_index        int\n    Partition              string\n    Total_space_in_bytes   string\n    Used_space_in_bytes    string\n    Free_space_in_bytes    string\n    Percentage_space_usage string\n}\n\ntype PARTITIONLIST []PARTITION\n\ntype PARTITIONS struct {\n    Name                string\n    List                []PARTITIONS\n}\n\n\/************ helper functions goes below here ************\/\nfunc bytesToSize(bytes uint64) string {\n    sizes := []string{\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\"}\n    if bytes == 0 {\n        return fmt.Sprint(float64(0), \"bytes\")\n    } else {\n        var bytes1 = float64(bytes)\n        var i = math.Floor(math.Log(bytes1) \/ math.Log(1024))\n        var count = bytes1 \/ math.Pow(1024, i)\n        var j = int(i)\n        var val = fmt.Sprintf(\"%.1f\", count)\n        return fmt.Sprint(val, sizes[j])\n    }\n}\n\nfunc dealwithErr(err error) {\n    if err != nil {\n        fmt.Println(err)\n    }\n}<\/pre>\n<p><strong>\u7f16\u8f91<\/strong>\uff1a\u8fd0\u884c\u65f6\u51fa\u73b0\u8be5\u9519\u8bef<\/p>\n<p> \u610f\u5916\u7684\u6362\u884c\u7b26\uff0c\u9700\u8981\u9017\u53f7\u6216 } <\/p>\n<p>\u5e76\u4e14\u8be5\u8b66\u544a\u7f16\u8f91\u5668\u663e\u793a\u5728 ide \u4e0a<\/p>\n<p> \u65e0\u6cd5\u5c06partitionslist\uff08\u7c7b\u578bpartitionslist\uff09\u7528\u4f5c\u7c7b\u578b[]partitions <\/p>\n<p> <\/p>\n<h2>\u89e3\u51b3\u65b9\u6848<\/h2>\n<p> <\/p>\n<p>\u6b63\u5982\u9519\u8bef\u660e\u786e\u6307\u51fa\u7684\u90a3\u6837\uff1a<\/p>\n<p>\u65e0\u6cd5\u5c06partitionslist\uff08\u7c7b\u578bpartitionslist\uff09\u7528\u4f5c\u7c7b\u578b[]partitions<\/p>\n<p>\u7ed3\u6784\u4e2d\u5b58\u5728\u7c7b\u578b\u4e0d\u5339\u914d\u95ee\u9898\u3002\u7531\u4e8e partitionslist \u4e0d\u7b26\u5408 []partitions\u3002\u56e0\u6b64\uff0c\u5982\u679c\u60a8\u521b\u5efa\u8fd9\u4e24\u79cd\u7c7b\u578b\u7684\u53d8\u91cf\uff0c\u5b83\u4eec\u662f\u4e0d\u540c\u7684\u3002<\/p>\n<pre>type partitionlist []partition\n\ntype partitions struct {\n    name                string\n    list                []partitions \/\/ here the list is slice of partitions.\n}<\/pre>\n<p>\u5f53\u60a8\u521b\u5efa partitionlist \u7c7b\u578b\u7684\u5207\u7247\u65f6\u3002<\/p>\n<pre>var partitionslist partitionlist \/\/ this is a variable of partitionlist type which is not equal to `[]partitions`<\/pre>\n<p>\u8fd9\u662f\u56e0\u4e3a golang \u662f\u4e25\u683c\u7c7b\u578b\u8bed\u8a00\u3002\u56e0\u6b64\uff0c\u5373\u4f7f\u4e24\u4e2a\u503c\u7684\u57fa\u7840\u7c7b\u578b\u76f8\u4f3c\u3002\u4e24\u8005\u8fd8\u662f\u6709\u533a\u522b\u7684\u3002\u66f4\u7b80\u5355\u8bd5\u8bd5\u8fd9\u4e2a\u4f8b\u5b50\uff1a<\/p>\n<pre>package main\n\nimport \"fmt\"\n\ntype myint int\n\nfunc main() {\n    var a int = 2\n    var b myint = 2\n    fmt.println(a==b)\n}<\/pre>\n<p><strong>\u8f93\u51fa\uff1a<\/strong><\/p>\n<p>\u65e0\u6548\u64cd\u4f5c\uff1aa == b\uff08int \u548c myint \u7c7b\u578b\u4e0d\u5339\u914d\uff09<\/p>\n<\/p>\n<p>\u56e0\u6b64\u60a8\u9700\u8981\u521b\u5efa <code>[]partitions<\/code> \u7684\u5207\u7247\uff1a<\/p>\n<pre>var partitionslist `[]partitions`<\/pre>\n<p>\u6216\u8005\u60a8\u53ef\u4ee5\u521b\u5efa <code>partitionlist<\/code> \u7c7b\u578b\u7684\u4e24\u4e2a\u53d8\u91cf\u4ee5\u4f7f\u5b83\u4eec\u76f8\u4f3c\u3002<\/p>\n<p>\u53e6\u4e00\u4e2a\u9519\u8bef\uff1a<\/p>\n<p>\u610f\u5916\u7684\u6362\u884c\u7b26\uff0c\u9700\u8981\u9017\u53f7\u6216 }<\/p>\n<p>\u662f\u56e0\u4e3a\u5982\u679c\u60a8\u5728\u65b0\u884c\u4e2d\u4f7f\u7528\u5b83\uff0c\u5219\u9700\u8981\u5728\u6700\u540e\u4e00\u4e2a\u5b57\u6bb5\u4e4b\u540e\u4f20\u9012 <code>,<\/code>\uff1a<\/p>\n<pre>var partitiondetails = partitions{\n    \"partitions\",\n    partitionslist, \/\/ pass comma here in your code.\n}<\/pre>\n<p>\u5b8c\u6574\u7684\u5de5\u4f5c\u793a\u4f8b\uff1a<\/p>\n<pre>package main\n\nimport (\n    \"fmt\"\n    \"math\"\n    \"strconv\"\n\n    \"github.com\/shirou\/gopsutil\/disk\"\n)\n\nfunc main() {\n\n    \/************ disk details goes here ************\/\n    diskpartitions, err := disk.partitions(true)\n    dealwitherr(err)\n    fmt.println(diskpartitions)\n\n    var partitionslist partitionlist\n\n    for partitionindex, partition := range diskpartitions {\n        partitionstat, err := disk.usage(partition.mountpoint)\n        dealwitherr(err)\n\n        var partitiondetails = partition{\n            \"partition\",\n            partitionindex,\n            partition.mountpoint,\n            \"\" + fmt.sprint(partitionstat.total) + \" and \" + bytestosize(partitionstat.total),\n            \"\" + fmt.sprint(partitionstat.used) + \" and \" + bytestosize(partitionstat.used),\n            \"\" + fmt.sprint(partitionstat.free) + \" and \" + bytestosize(partitionstat.free),\n            \"\" + fmt.sprint(partitionstat.usedpercent) + \"and \" + strconv.formatfloat(partitionstat.usedpercent, 'f', 2, 64),\n        }\n\n        partitionslist = append(partitionslist, partitiondetails)\n    }\n\n    \/\/till here working fine\n    fmt.println(partitionslist)\n\n    \/\/the below two lines error is the actual error i am asking\n    var partitiondetails = partitions{\n        \"partitions\",\n        partitionslist,\n    }\n\n    fmt.println(partitiondetails)\n\n    dealwitherr(err)\n}\n\n\/************ all struct goes here ************\/\n\ntype partition struct {\n    name                   string\n    partition_index        int\n    partition              string\n    total_space_in_bytes   string\n    used_space_in_bytes    string\n    free_space_in_bytes    string\n    percentage_space_usage string\n}\n\ntype partitionlist []partition\n\ntype partitions struct {\n    name string\n    list partitionlist\n}\n\n\/************ helper functions goes below here ************\/\nfunc bytestosize(bytes uint64) string {\n    sizes := []string{\"bytes\", \"kb\", \"mb\", \"gb\", \"tb\"}\n    if bytes == 0 {\n        return fmt.sprint(float64(0), \"bytes\")\n    } else {\n        var bytes1 = float64(bytes)\n        var i = math.floor(math.log(bytes1) \/ math.log(1024))\n        var count = bytes1 \/ math.pow(1024, i)\n        var j = int(i)\n        var val = fmt.sprintf(\"%.1f\", count)\n        return fmt.sprint(val, sizes[j])\n    }\n}\n\nfunc dealwitherr(err error) {\n    if err != nil {\n        fmt.println(err)\n    }\n}<\/pre>\n<\/p>\n<p>\u8003\u8651\u9605\u8bfb \u5e76\u66f4\u6539\u60a8\u7684\u547d\u540d\u98ce\u683c\uff0c<\/p>\n<p>\u82b1\u70b9\u65f6\u95f4\u51b3\u5b9a\u4ec0\u4e48\u662f\u4e13\u6709\u540d\u79f0\u3002<\/p>\n<p>\u60a8\u5df2\u58f0\u660e <code>paritionlist<\/code> \u4e24\u6b21<\/p>\n<pre>type partitionlist []partition \/\/17th line, remove this<\/pre>\n<p><code>partitions<\/code> \u5b9a\u4e49\u4e3a\uff0c<\/p>\n<pre>type partitions struct {\n    name string\n    list []partition\n}<\/pre>\n<p>\u60a8\u53ef\u4ee5\u5bf9 <code>list<\/code> \u5b57\u6bb5\u4f7f\u7528 <code>partitionlist<\/code> \u800c\u4e0d\u662f <code>[]partition<\/code> \u7c7b\u578b\u3002<\/p>\n<p>\u7ed3\u6784\u4f53\u53d8\u91cf\u5b57\u6bb5\u503c\u4ee5\u9017\u53f7\u7ed3\u675f\uff0c<\/p>\n<pre>var partitionDetails = PARTITIONS{\n        \"partitions\",\n        partitionsList,\n    }<\/pre>\n<p>\u597d\u4e86\uff0c\u672c\u6587\u5230\u6b64\u7ed3\u675f\uff0c\u5e26\u5927\u5bb6\u4e86\u89e3\u4e86\u300a\u6784\u9020\u5947\u602a\u7684\u884c\u4e3a\u300b\uff0c\u5e0c\u671b\u672c\u6587\u5bf9\u4f60\u6709\u6240\u5e2e\u52a9\uff01\u5173\u6ce8\u516c\u4f17\u53f7\uff0c\u7ed9\u5927\u5bb6\u5206\u4eab\u66f4\u591aGolang\u77e5\u8bc6\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5f53\u524d\u4f4d\u7f6e\uff1a &gt; &gt; &#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4925],"tags":[],"class_list":["post-207015","post","type-post","status-publish","format-standard","hentry","category-4925"],"_links":{"self":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/207015","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/comments?post=207015"}],"version-history":[{"count":0,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/207015\/revisions"}],"wp:attachment":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/media?parent=207015"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/categories?post=207015"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/tags?post=207015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}