我的Go+语言初体验——用Go+绘制爱心给心爱的她表白

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

“我的Go+语言初体验” | 征文活动进行中......

@

目录

  • 💝实现的效果
  • ⚡️Go+语言介绍
  • 🚀go+语言特点
  • 👏Go+环境搭建
  • 安装 Git 工具
  • 安装 Go+
  • 😉绘制爱心

💝实现的效果

在这里插入图片描述

⚡️Go+语言介绍

Go+在2020年7月刚问世时,其slogan是“为数据科学而生”。而在Go+1.0版迈出商业化第一步时,slogan变成三位一体的“for engineering, STEM education, and data science”。

  • “for engineering”致力于让工程师可以使用简洁、容易掌握的语言去工作,这在纷繁复杂的工程技术领域是非常重要的进化。

  • “for STEM education”希望青少年从小学就能学习一门工程语言,以便于在将来的工作中延续使用。目前,儿童接触的第一门编程语言通常是Scratch,很难终身受用。

  • “for data science”让工程师和数据科学家可以用相同的语言去对话,这在以数据驱动创新的未来尤为重要。

🚀go+语言特点

Go+ 非常有意思的一点,它是唯一一个选择了双引擎的语言,既支持静态编译,也支持可解析执行。

为什么要做双引擎呢?因为我认为程序员和数据科学家的诉求是不一样的,数据科学家喜欢单步执行,大家可以在心中回想一下你见过的数学软件,包括 SAS、MATLAB,数学软件交互都是单步执行的方式。

这并不是因为数据科学家懒。程序员理解程序逻辑是可以放在脑子里的,我们脑子里知道程序逻辑写得对不对。但数据科学家做计算的时候,不能知道计算结果对不对,因为人的计算能力比计算机弱太多了,所以一定要单步执行看到计算结果,才能知道自己下一步应该怎么办,这是数据科学家和程序员工作模式完全不同的一个点。

因为他是在做计算而不是在做一种程序逻辑,所以他很难不去做单步执行。

但当数据科学家建了一种模型,最终要使用了,这时他仍然希望最终交付的是最大化的执行效率,他一定不希望代码运行很慢,所以这个时候他就又需要静态编译执行,这也是为什么 Go+ 希望设计成双引擎,因为调试阶段和生产使用阶段,工作模式完全不一样。

👏Go+环境搭建

安装 Git 工具

Git 官网地址:https://git-scm.com/download/win

  • 选择版本(我电脑是32位):

    在这里插入图片描述

    在这里插入图片描述

  • 选择路径:

    在这里插入图片描述

  • 安装后,在cmd控制台出入:git version,显示版本号表示安装成功。

    在这里插入图片描述

安装 Go+

官方 GitHub 地址:https://github.com/goplus/gop

  • 我们这边使用 Git工具下载安装Go+,在cmd控制台出入:

    git clone https://github.com/goplus/gop.git
    
  • 安装中

    在这里插入图片描述

  • 配置环境变量(我的电脑 -> 属性 -> 高级环境变量 -> 环境变量 -> 新建系统变量)

    在这里插入图片描述

    在path中添加%gop%\bin ,中间的gop就是我们前面用的变量名。

    在这里插入图片描述

😉绘制爱心

环境搭建好了,接下来创建一个.txt的文件,把代码复制进去后,修改后缀为.gop

package main

import (
    "flag"
    "fmt"
    "math"
    "strings"
    "time"
)

func main() {
    // MYWORD My word
    var head string
    var tail string
    var MYWORD string
    var sep string
    var zoom float64
    flag.StringVar(&head, "head", "There are some words I wana tell you:", "A sentence printed on the head") //添加开头要写的话
    flag.StringVar(&tail, "tail", "\t\t\t\t--- Your lover", "A sentence printed on the tail") //添加结尾要写的话
    flag.StringVar(&MYWORD, "words", "Dear, I love you forever!", "The words you want to talk") //爱心中的内容
    flag.StringVar(&sep, "sep", " ", "The separator")
    flag.Float64Var(&zoom, "zoom", 1.0, "Zoom setting")
    flag.Parse()

    chars := strings.Split(MYWORD, sep)

    time.Sleep(time.Duration(1) * time.Second)
    fmt.Println(head)
    fmt.Println()
    time.Sleep(time.Duration(1) * time.Second)
    for _, char := range chars {
        allChar := make([]string, 0)

        for y := 12 * zoom; y > -12*zoom; y-- {
            lst := make([]string, 0)
            lstCon := ""
            for x := -30 * zoom; x < 30*zoom; x++ {
                x2 := float64(x)
                y2 := float64(y)
                formula := math.Pow(math.Pow(x2*0.04/zoom, 2)+math.Pow(y2*0.1/zoom, 2)-1, 3) - math.Pow(x2*0.04/zoom, 2)*math.Pow(y2*0.1/zoom, 3)
                if formula <= 0 {
                    index := int(x) % len(char)
                    if index >= 0 {
                        lstCon += string(char[index])
                    } else {
                        lstCon += string(char[int(float64(len(char))-math.Abs(float64(index)))])
                    }

                } else {
                    lstCon += " "
                }
            }
            lst = append(lst, lstCon)
            allChar = append(allChar, lst...)
        }

        for _, text := range allChar {
            fmt.Printf("%s\n", text)
        }
    }
    time.Sleep(time.Duration(1) * time.Second)
    fmt.Println("\t\t\t\t", tail)
}
...全文

相关推荐

还没有表白神器?情人节来喽,快为心爱的她送上一份专属的礼物吧~

还没有表白神器?情人节来喽,快为心爱的她送上一份专属的礼物吧~

是Dream呀

完全复现虚拟同步发电机VSG自适应惯量阻尼控制仿真、根轨迹、调节系数对比(Simulink仿真、Matlab代码实现)

内容概要:本文详细介绍了名为《【完全复现】虚拟同步发电机VSG自适应惯量阻尼控制仿真、根轨迹、调节系数对比(Simulink仿真、Matlab代码实现)》的技术资源,重点围绕虚拟同步发电机(VSG)的自适应惯量与阻尼控制展开,涵盖系统建模、控制策略设计、根轨迹分析及调节系数对比等内容,通过Simulink仿真与Matlab代码实现,帮助读者深入理解VSG在电力系统中的动态响应特性与控制优化方法;文档还列举了大量相关科研资源,涉及电力系统、智能优化、信号处理、路径规划等多个领域,展示了丰富的仿真案例与算法应用。; 适合人群:具备电力系统、自动控制或相关专业背景,熟悉Matlab/Simulink仿真环境,有一定科研基础的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于学习和复现虚拟同步发电机的自适应控制策略,掌握其在微电网和新能源并网中的应用;②通过根轨迹与参数调节分析,优化控制系统动态性能;③结合提供的代码与模型,开展电力系统稳定性研究、课程设计或科研项目开发。; 阅读建议:建议读者结合文中提到的完整资源目录和网盘资料,下载配套的Matlab代码与Simulink模型进行实践操作,边仿真边理解理论原理,重点关注控制参数对系统稳定性的影响,并可拓展应用于其他电力电子变流器或构网型控制研究。

梦想科研社_研学

政府如何精准评估园区创新能力并制定有效产业政策?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

央企如何借助数据分析提升创新管理体系效能?.docx

央企如何借助数据分析提升创新管理体系效能?

BIZKEEN

MATLAB模拟6自由度无人机检查,具备干扰补偿、裂纹检测和自主复检功能。.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

海神之光
评论 14
收藏 已收藏
分享
返回顶部
小满大王i CSDN会员
小满大王i 优质创作者: 编程框架技术领域 优质创作者: 编程框架技术领域领域专家: Python技术领域 领域专家: Python技术领域
Go+ 开发者社区 1,099 成员 209 内容