我的Go+语言初体验——Go plus 浅尝一下 (go、python开发者轻松上手👍)

lihaifenga lihaifenga 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

安装

gop项目地址: https://github.com/goplus/gop.git

按照文档提示

git clone https://github.com/goplus/gop.git
cd gop
./all.bash

安装完之后:

img

运行hello world程序

// tmp/helloworld.gop
package main

func main() {
    println("hello world!")
}

img

ATTENTION⚠️ 解决(非代码问题)运行不成功

img

在用 gop run tmp/helloworld.gop 运行的过程中,刚开始始终运行不成功

检查tmp目录下存在go.mod文件,删除该文件再运行,成功解决✅

变量

gop支持不同类型的变量联结:

// tmp/variables.gop
package main

func main() {
    x := 123.1 - 3i
    y, z := "Hello, ", 123
    println(y+"complex:", x+1, "int:", z)
}

img

如果用go语言实现以上逻辑:

// tmp/variables.go
package main

import "fmt"

func main() {
    x := 123.1 - 3i
    y, z := "Hello, ", 123
    fmt.Printf("%scomplex:%v int: %d\n", y, x+1, z)
}

在go语言中需要用format来格式化输出,gop中可以忽略变量的类型,直接用println进行输出

gop 玩锤子剪刀布游戏

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:

img

现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。

输入格式:

输入第 1 行给出正整数 N(≤10
5
),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。

输出格式:

输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字间以 1 个空格分隔。第 3 行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有 1 个空格。如果解不唯一,则输出按字母序最小的解。

输入样例:

10
C J
J B
C B
B B
B C
C C
C B
J B
B C
J J

输出样例:

5 3 2
2 3 5
B B
// tmp/cai_quan.gop
package main

import "fmt"

func main() {
    var count int
    _, _ = fmt.Scanf("%d", &count) // 读取输入的比赛次数
    a := make(map[int]string, count)
    b := make(map[int]string, count)

    var aWin, aLose, aTie int // a 赢,输,平
    var bWin, bLose, bTie int
    var aMostWinGestureCount int // a最多次赢的次数
    var bMostWinGestureCount int
    var aMostWinGesture string // a最多次赢的手势
    var bMostWinGesture string

    aWGesture := make(map[string]int) // 用map集合来记录每个回合的出拳
    bWGesture := make(map[string]int)

    // 循环count次录入回合数据
    for i := 0; i < count; i++ {
        var tempA, tempB string
        _, _ = fmt.Scanf("%s %s", &tempA, &tempB)
        a[i], b[i] = tempA, tempB
        // 计算输赢和手势数据
        if a[i] == "C" && b[i] == "J" || a[i] == "J" && b[i] == "B" || a[i] == "B" && b[i] == "C" {
            aWin++
            aWGesture[a[i]]++
            bLose++
        } else if a[i] == "C" && b[i] == "B" || a[i] == "J" && b[i] == "C" || a[i] == "B" && b[i] == "J" {
            aLose++
            bWin++
            bWGesture[b[i]]++
        } else {
            aTie++
            bTie++
        }
    }

    // 计算a最多次赢的手势
    for k, v := range aWGesture {
        if v >= aMostWinGestureCount {
            if aMostWinGesture == "" {
                aMostWinGesture = k
            } else if aMostWinGesture > k {
                aMostWinGesture = k
            }
        }
    }

    // 计算b最多次赢的手势
    for k, v := range bWGesture {
        if v >= bMostWinGestureCount {
            if bMostWinGesture == "" {
                bMostWinGesture = k
            } else if bMostWinGesture > k {
                bMostWinGesture = k
            }
        }
    }

    // 输出结果
    println(aWin, aTie, aLose)
    println(bWin, bTie, bLose)
    println(aMostWinGesture, bMostWinGesture)
}

未完待续..

[“我的GO+初体验” | 征文活动进行中......] 👉👉👉 https://bbs.csdn.net/topics/603464006

...全文

相关推荐

基于Go语言+HTML实现区块链的信对账系统源码及设计报告等全部资料.zip

基于Go语言+HTML实现区块链的信对账系统源码及设计报告等全部资料.zip 是一个基于区块链的可信对账系统,为数据的可信对账提供了安全可靠的解决方案。该项目采用了前后端分离的架构,前端使用 Vue 3 和 Element Plus 构建用户界面,后端使用 Go 语言和 Gin 框架进行开发,数据库使用 MySQL 和 Redis。

源码数据

grpc-python-go:通过gRPC的客户端服务器实现

gRPC和协议缓冲区 介绍 这是使用gRPC进行序列化和传输的客户端服务器实现。 gRPC基础 使用进行序列化。 这意味着您的数据结构被编码为字节并准备传输 使用 tcp协议进行传输,这保证了交付 服务 Go服务将收集指标(虚拟) Python服务将检测异常 Go客户端将通过与Python服务器通信 在gRPC我们定义了一个原型文件,在其中定义了要发送的消息和RPC方法。 我们的方法Detect使用OutliersRequest消息类型作为输入,并使用OutliersResponse消息类型作为输出。 OutliersRequest消息类型是Metric的列表/切片,而OutliersResponse消息类型是找到离群值的索引的列表/切片。 运行说明 创建一个virtualenv python3 -m venv venv 激活它source venv/bin/activate 安装

孙洋 Sonya

编程语言进阶实战项目集

编程语言进阶实战项目集

南山二毛

推荐20本软件开发好书

推荐20本软件开发好书 这20本好书涉及到Go,Python,C,C++,算法,软件设计,Mysql,Java,Spring Boot,Unix/Linux编程,TCPIP Socket

lj_70596

编程:算法和代码片段的多语言集合

程式设计 多种算法和代码段的集合。 编程语言 C C# C ++ 迪克图 F# 走 Groovy Java JavaScript PHP Python Ruby Scala SQL

weixin_38653664
评论 2
收藏 已收藏
分享
返回顶部