Golang环境篇

news2025/1/26 15:34:11

一、Golang环境篇

  一)go简介

  1、Golang定义

  Go语言是Google于2009年推出的一门新的系统编程语言。

  2、特性:
  • 静态编译
  • 内存分配:Go 选择了 tcmalloc,它本就是为并发而设计的高性能内存分配组件。
  • 垃圾回收:每次升级,垃圾回收器必然是核心组件里修改最多的部分。从并发清理,到降低 STW 时间,直到 Go 的 1.5 版本实现并发标记,逐步引入三色标记和写屏障等等,都是为了能让垃圾回收在不影响用户逻辑的情况下更好地工作。尽管有了努力,当前版本的垃圾回收算法也只能说堪用,离好用尚有不少距离。
  • 简洁的符号和语法
  • 平坦的类型系统
  • 基于CSP的并发模型
  • 丰富的标准库
    • 功能完善、质量可靠的标准库为编程语言提供了充足动力。在不借助第三方扩展的情况下,就可完成大部分基础功能开发,这大大降低了学习和使用成本。最关键的是,标准库有升级和修复保障,还能从运行时获得深层次优化的便利,这是第三方库所不具备的。
    • Go 标准库虽称不得完全覆盖,但也算极为丰富。其中值得称道的是 net/http,仅须简单几条语句就能实现一个高性能 Web Server,这从来都是宣传的亮点。更何况大批基于此的优秀第三方 Framework 更是将 Go 推到 Web/Microservice 开发标准之一的位置。
  • 高效简单的工具链
    • 完整的工具链对于日常开发极为重要。Go 在此做得相当不错,无论是编译、格式化、错误检查、帮助文档,还是第三方包下载、更新都有对应的工具。其功能未必完善,但起码算得上简单易用。
    • 内置完整测试框架,其中包括单元测试、性能测试、代码覆盖率、数据竞争,以及用来调优的 pprof,这些都是保障代码能正确而稳定运行的必备利器。
    • 可通过环境变量输出运行时监控信息,尤其是垃圾回收和并发调度跟踪,可进一步帮助我们改进算法,获得更佳的运行期表现。
  3、go语言家谱

  

  4、为什么选择go语言(优势)
  • 语法简单,易于学习。类C的语法,同时比C/C++简洁和干净
  • 自带GC,方便使用
  • 编译型语言,运行速度快
  • 静态编译,没有依赖
  • 天生支持并发,充分利用多核(省机器,节约成本)
  • 大厂支持
  • 标准类库,规范统一
    并行和并发
  • 并发(concurrent)不是并行(parallel)
Go语言正是在多核和网络化的时代背景下诞生的原生支持并发的编程语言。Go语言从底层原生支持并发,无须第三方库,开发人员可以很轻松地在编写程序时决定怎么使用 CPU 资源。

Go语言的并发是基于 goroutine 的,goroutine 类似于线程,但并非线程。可以将 goroutine 理解为一种虚拟线程。Go语言运行时会参与调度 goroutine,并将 goroutine 合理地分配到每个 CPU 中,最大限度地使用 CPU 性能。

多个 goroutine 中,Go语言使用通道(channel)进行通信,通道是一种内置的数据结构,可以让用户在不同的 goroutine 之间同步发送具有类型的消息。这让编程模型更倾向于在 goroutine 之间发送消息,而不是让多个 goroutine 争夺同一个数据的使用权。

  提示:Go语言通过通道可以实现多个 goroutine 之间内存共享。

  • 一个例子:nodejs具有并发的能力,但不能充分利用多核
  • 写出一个能充分利用多核的程序需要很深的系统编程积淀
  • 得益于优秀的设计,go可以轻松地写出跑满所有CPU的程序
   5、GO的用途
  • 巨型中央服务器领域
  • 高性能分布式领域
  • 游戏服务端开发
  • 复杂事件处理
  • 对实时性要求很高的软件开发
  • 可以在Intel和ARM处理上运行,因此也可以在安卓上运行

  

  6、Go的性能

  流行的语言大都是运行在虚拟机上,如:Java 和 Scala 使用的 JVM,C# 和 VB.NET 使用的 .NET CLR。尽管虚拟机的性能已经有了很大的提升,但任何使用 JIT 编译器和脚本语言解释器的编程语言(Ruby、Python、Perl 和 JavaScript)在 C 和 C++ 的绝对优势下甚至都无法在性能上望其项背

  国外的一个编程语言性能测试网站 http://benchmarksgame.alioth.debian.org/ 为测试基准和数据源。这个网站可以对常见的编程语言进行性能比较,网站使用都是最新的语言版本和常见的一些算法。

  7、Go标准库强大

  在Go语言的安装文件里包含了一些可以直接使用的包,即标准库。Go语言的标准库,提供了清晰的构建模块和公共接口,包含 I/O 操作、文本处理、图像、密码学、网络和分布式应用程序等,并支持许多标准化的文件格式和编解码协议

  一般情况下,标准包会存放在 $GOROOT/pkg/$GOOS_$GOARCH/ 目录下

  Go语言的标准库以包的方式提供支持,下表列出了Go语言标准库中常见的包及其功能。

  

Go语言标准库包名功  能
bufio带缓冲的 I/O 操作
bytes实现字节操作
container封装堆、列表和环形列表等容器
crypto加密算法
database数据库驱动和接口
debug各种调试文件格式访问及调试功能
encoding常见算法如 JSON、XML、Base64 等
flag命令行解析
fmt格式化操作
goGo语言的词法、语法树、类型等。可通过这个包进行代码信息提取和修改
htmlHTML 转义及模板系统
image常见图形格式的访问及生成
io实现 I/O 原始访问接口及访问封装
math数学库
net网络库,支持 Socket、HTTP、邮件、RPC、SMTP 等
os操作系统平台不依赖平台操作封装
path兼容各操作系统的路径操作实用函数
pluginGo 1.7 加入的插件系统。支持将代码编译为插件,按需加载
reflect语言反射支持。可以动态获得代码中的类型信息,获取和修改变量的值
regexp正则表达式封装
runtime运行时接口
sort排序接口
strings字符串转换、解析及实用函数
time时间接口
text文本模板及 Token 词法器

  二)安装配置golang

  1、Go 语言支持以下系统:

  安装包下载地址:https://golang.org/dl/   (若此地址打不开,使用下面的地址)

  或官方下载:All releases - The Go Programming Language

  • Linux
  • Mac OS X(也称为 Darwin)
  • Windows
  2、Linux安装Go
    1)下载安装包

  

cd /usr/local/src
https://golang.google.cn/dl/go1.18.3.linux-amd64.tar.gz

     2)安装
tar -xvf go1.18.3.linux-amd64.tar.gz -C /usr/local

    3)设置环境变量

  需要配置 2 个环境变量分别是 GOROOT 和 PATH。

  • GOROOT 的值应该为Go语言的当前安装目录:export GOROOT=/usr/local/go
  • PATH 为了方便使用Go语言命令和 Go 程序的可执行文件,需要追加其值:export PATH=$PATH:$GOROOT/bin:$GOBIN

  把这几个环境变量添加 profile 文件中(~/.bash_profile 或 /etc/profile)。如果是单用户使用,可以将环境变量添加在 home 目录下的 bash_profile 文件中,如果是多用户使用,需要添加在 /etc/profile 文件

cat >> /etc/profile <<EOF
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
EOF

source  /etc/profile

    4)验证环境
go env

  3、macOS 安装Go
    1)下载安装包

  

    2)安装安装:和安装其他软件一样
    3)设置环境变量

  开始写 go 项目代码之前,需要我们先配置好环境变量。编辑 ~/.bash_profile(在终端中运行 vi ~/.bash_profile 即可)来添加下面这行代码(如果你找不到 .bash_profile,那自己创建一个就可以了)

  GOROOT 也就是 Go 开发包的安装目录默认是在 /usr/local/go,如果没有,可以在 bash_profile 文件中设置。

export GOPATH=$HOME/go
export GOROOT=/usr/local/go

  source ~/.bash_profile

    4)验证环境
go env

  4、Windows安装Go
    1)下载安装包

  

     2)安装:和安装其他软件一样——点点点

  

Go 开发包的安装目录的功能及说明
目录名说明
api每个版本的 api 变更差异
bingo 源码包编译出的编译器(go)、文档工具(godoc)、格式化工具(gofmt)
doc英文版的 Go 文档
lib引用的一些库文件
misc杂项用途的文件,例如 Android 平台的编译、git 的提交钩子等
pkgWindows 平台编译好的中间文件
src标准库的源码
test测试用例
    3)设置环境变量

  开发包安装完成后,我们还需要配置一下GOPATH 环境变量,之后才可以使用Go语言进行开发。GOPATH 是一个路径,用来存放开发中需要用到的代码包。
  在桌面或者资源管理器右键“此电脑”(或者“我的电脑”)→“属性”→“高级系统设置”→“环境变量”,如下图所示。

  

  在弹出的菜单里找到 GOPATH 对应的选项点击编辑之后就可以修改了,没有的话可以选择新建,并将变量名填写为 GOPATH,变量值设置为任意目录均可(尽量选择空目录),例如 D:\Go。

  

  提示:填写完成后,每个打开的窗口都需要点击“确定”来保存设置

    4)验证环境

  其它的环境变量安装包均会进行自动设置。在默认情况下,Go 将会被安装在目录 c:\go 下,但如果你在安装过程中修改安装目录,则可能需要手动修改所有的环境变量的值。

  环境变量设置好后,可以通过go env 命令来进行测试

  三)Go工程结构和依赖管理

  1、Go工程结构

  一个Go语言项目的目录一般包含以下三个子目录:

  • src 目录:放置项目和库的源文件;
  • pkg 目录:放置编译后生成的包/库的归档文件;
    • 用于存放通过go install 命令安装某个包后的归档文件。归档文件是指那些名称以“.a”结尾的文件。
  • bin 目录:放置编译后生成的可执行文件。
    • 与 pkg 目录类似,在通过go install 命令完成安装后,保存由 Go 命令源文件生成的可执行文件。

  2、Go依赖管理

   Go所依赖的所有的第三方库都放在GOPATH这个目录下面。这就导致了同一个库只能保存一个版本的代码

  • go module

  使用 go module 管理依赖后会在项目根目录下生成两个文件go.mod和go.sum。

go module是Go1.11版本之后官方推出的版本管理工具,并且从Go1.13版本开始,go module将是Go语言默认的依赖管理工具。
  • GOPROXY

  Go1.13之后GOPROXY默认值为https://proxy.golang.org,在国内是无法访问的,所以十分建议大家设置GOPROXY,这里我推荐使用goproxy.cn。

go env -w GOPROXY=https://goproxy.cn,direct

  四)go常用命令

  1、go help查看帮助信息
# go help
Go is a tool for managing Go source code.

Usage:

    go <command> [arguments]

The commands are:

    bug         start a bug report
    build       compile packages and dependencies
    clean       remove object files and cached files
    doc         show documentation for package or symbol
    env         print Go environment information
    fix         update packages to use new APIs
    fmt         gofmt (reformat) package sources
    generate    generate Go files by processing source
    get         add dependencies to current module and install them
    install     compile and install packages and dependencies
    list        list packages or modules
    mod         module maintenance
    run         compile and run Go program
    test        test packages
    tool        run specified go tool
    version     print Go version
    vet         report likely mistakes in packages

Use "go help <command>" for more information about a command.

Additional help topics:

    buildconstraint build constraints
    buildmode       build modes
    c               calling between Go and C
    cache           build and test caching
    environment     environment variables
    filetype        file types
    go.mod          the go.mod file
    gopath          GOPATH environment variable
    gopath-get      legacy GOPATH go get
    goproxy         module proxy protocol
    importpath      import path syntax
    modules         modules, module versions, and more
    module-get      module-aware go get
    module-auth     module authentication using go.sum
    packages        package lists and patterns
    private         configuration for downloading non-public code
    testflag        testing flags
    testfunc        testing functions
    vcs             controlling version control with GOVCS

Use "go help <topic>" for more information about that topic.

  2、go build

  go build 命令主要是用于测试编译

  Windows环境

  • 如果是普通包,当你执行go build命令后,不会产生任何文件
  • 如果是main包,当只执行go build命令后,会在当前目录下生成一个可执行文件。
  • 如果需要在$GOPATH/bin木下生成相应的exe文件,需要执行go install 或者使用 go build -o 路径/a.exe。
  3、go clean

  go clean 命令是用来移除当前源码包里面编译生成的文件,这些文件包括

_obj/ 旧的object目录,由Makefiles遗留
_test/ 旧的test目录,由Makefiles遗留
_testmain.go 旧的gotest文件,由Makefiles遗留
test.out 旧的test记录,由Makefiles遗留
build.out 旧的test记录,由Makefiles遗留
*.[568ao] object文件,由Makefiles遗留
DIR(.exe) 由 go build 产生
DIR.test(.exe) 由 go test -c 产生
MAINFILE(.exe) 由 go build MAINFILE.go产生
  4、go fmt

  go fmt 命令主要是用来帮你格式化所写好的代码文件。

比如我们写了一个格式很糟糕的 test.go 文件,我们只需要使用 fmt go test.go 命令,就可以让go帮我们格式化我们的代码文件。但是我们一般很少使用这个命令,因为我们的开发工具一般都带有保存时自动格式化功能,这个功能底层其实就是调用了 go fmt 命令而已。

使用go fmt命令,更多时候是用gofmt,而且需要参数-w,否则格式化结果不会写入文件。gofmt -w src,可以格式化整个项目。
  5、go get

  go get 命令主要是用来动态获取远程代码包的,目前支持的有BitBucket、GitHub、Google Code和Launchpad

  这个命令在内部实际上分成了两步操作:第一步是下载源码包,第二步是执行go install。下载源码包的go工具会自动根据不同的域名调用不同的源码工具,对应关系如下:

BitBucket (Mercurial Git)
GitHub (Git)
Google Code Project Hosting (Git, Mercurial, Subversion)
Launchpad (Bazaar)

  为了go get 能正常工作,你必须确保安装了合适的源码管理工具,并同时把这些命令加入你的PATH中。其实go get支持自定义域名的功能,具体参见go help remote。
go get 命令本质上可以理解为:首先通过源码工具clone代码到src目录,然后执行go install。

  6、go install

  go install 命令在内部实际上分成了两步操作

  • 第一步是生成结果文件(可执行文件或者.a包)
  • 第二步会把编译好的结果移到 G O P A T H / p k g 或 者 GOPATH/pkg 或者GOPATH/pkg或者GOPATH/bin
.exe文件: 一般是 go install 带main函数的go文件产生的,有函数入口,所有可以直接运行。

.a应用包: 一般是 go install 不包含main函数的go文件产生的,没有函数入口,只能被调用。
  7、go test

  go test 命令,会自动读取源码目录下面名为*_test.go的文件,生成并运行测试用的可执行文件。输出的信息类似

ok archive/tar 0.011s FAIL archive/zip 0.022s ok compress/gzip

0.033s …

  默认的情况下,不需要任何的参数,它会自动把你源码包下面所有test文件测试完毕,当然你也可以带上参数,详情请参考go help testflag

  8、go doc

  go doc 命令其实就是一个很强大的文档工具。

如何查看相应package的文档呢? 
安装包:go get golang.org/x/tools/cmd/doc


例如builtin包,那么执行go doc builtin;如果是http包,那么执行go doc net/http;
查看某一个包里面的函数,那么执行godoc fmt Printf;也可以查看相应的代码,执行godoc -src fmt Printf;

通过命令在命令行执行 godoc -http=:端口号 比如godoc -http=:8080。然后在浏览器中打开127.0.0.1:8080,你将会看到一个golang.org的本地copy版本,通过它你可以查询pkg文档等其它内容。
如果你设置了GOPATH,在pkg分类下,不但会列出标准包的文档,还会列出你本地GOPATH中所有项目的相关文档,这对于经常被限制访问的用户来说是一个不错的选择。
  9、go mod

  module相关命令

新建一个go mod 的项目
go mod init module_name
增加缺少的module,删除无用的module:通过扫描当前项目中的所有代码来添加为被记录的依赖至go.mod文件中或从go.mod文件中删除不再被使用的依赖
go mod tidy 
go mod edit 编辑go.mod文件
go mod graph 打印模块依赖图
go mod vendor 将依赖复制到vendor下
go mod verify 校验依赖
go mod why 解释为什么需要依赖

  10、其他命令
go fix 用来修复以前老版本的代码到新版本,例如go1之前老版本的代码转化到go1
go version 查看go当前的版本
go env 查看当前go的环境变量
go list 列出当前全部安装的package
go run 编译并运行Go程序

  11、常用命令
# 获取main中包的地址 和 go的版本信息,并写入go.mod文件中
go mod init

# 下载安装 go.mod中的包(包含依赖包)
go mod tidy

# 运行main.go 
go run main.go

  五)go集成开发环境IDE

  1、VSCode免费

  VSCode中文网 - Visual Studio Code中文官网 VS Code编辑器中文网站

  2、goland收费

  GoLand

  六)go 配置国内仓库

  1、Linux操作系统

  配置环境变量:修改profile或bashrc

export GOPROXY=https://goproxy.baidu.com/

# 也可使用: http://goproxy.cn

  2、goland编辑器

  Settings ->Language & Frameworks Go -> Go Modules

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1977702.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于51单片机的汽车灯控制器proteus仿真

地址&#xff1a; https://pan.baidu.com/s/1YrwCUQIKwdth1N2UsUtSRA 提取码&#xff1a;1234 仿真图&#xff1a; 芯片/模块的特点&#xff1a; AT89C52/AT89C51简介&#xff1a; AT89C52/AT89C51是一款经典的8位单片机&#xff0c;是意法半导体&#xff08;STMicroelectro…

基于Java的网络考试系统的设计与实现

点击下载源码 基于Java的网络考试系统的设计与实现 摘 要 科技在进步&#xff0c;人们生活和工作的方式正发生着改变&#xff0c;不仅体现在人们的衣食住行&#xff0c;也体现在与时俱进的考试形式上。以前的考试需要组织者投入大量的时间和精力&#xff0c;需要对考试的试题…

Java线程池原理剖析和应用指南

目录 Java线程池详解一、Java线程池简介池化思想池化思想的优点 二、线程池的实现原理分析实现线程池需要考虑哪些问题&#xff1f;线程池的简单使用示例线程池原理的简单图示 三、Executor详解Executor简介Executor框架的继承结构总结ExecutorExecutorService 四、ThreadPoolE…

免费自动化AI视频剪辑工具

下载地址&#xff1a;https://pan.quark.cn/s/3c5995da512e FunClip是一款完全开源、本地部署的自动化视频剪辑工具&#xff0c;通过调用阿里巴巴通义实验室开源的FunASR Paraformer系列模型进行视频的语音识别&#xff0c;随后用户可以自由选择识别结果中的文本片段或说话人&…

【Python系列】Python 协程:并发编程的新篇章

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

浪潮信息智算新突破:高密低耗风冷仓问世

浪潮信息与四川省天府云数据科技有限责任公司&#xff08;简称能投天府云&#xff09;强强联手&#xff0c;推出国内首款42kW智算风冷算力仓&#xff0c;该方案由浪潮信息深度参与研发&#xff0c;单机柜AI服务器部署能力跃升至传统机柜6倍以上&#xff0c;实现了风冷单机柜功率…

蚂蚁0511笔试-选择题

按照先序遍历确认父节点&#xff0c;再通过中序遍历划分左右子树。重复。 第二范式&#xff08;2NF&#xff09;确实要求非主属性完全依赖于候选键&#xff08;不一定是主键&#xff0c;因为主键只是候选键的一个特例&#xff09; 第一范式&#xff08;1NF&#xff09;要求数据…

基于python的旅游可视化系统(源码+论文+部署讲解等)

博主介绍&#xff1a;✌全网粉丝10W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围&#xff1a;原生小程序开发&#xff0c…

星纪魅族双轮驱动遇阻:AI手机与造车梦能否照进现实?

在科技行业风起云涌的浪潮中&#xff0c;星纪魅族近期的一系列动作引起了广泛关注。从高层换血到全面押注AI&#xff0c;再到宣布造车计划&#xff0c;每一步都显得雄心勃勃&#xff0c;但深入剖析后不难发现&#xff0c;其未来发展之路实则布满荆棘。 星纪魅族选择“All in AI…

OD C卷 - 园区参观路径

园区参观路径&#xff08;100&#xff09; 有一个矩形园区&#xff0c;从左上角走到右下角&#xff0c;只能向右、向下走&#xff1b;共有多少条不同的参观路径&#xff1b; 输入描述&#xff1a; 第一行输入长度、宽度 后续每一行表示 对应位置是否可以参观&#xff0c;0可…

【初学人工智能原理】【12】循环:序列依赖问题

前言 本文教程均来自b站【小白也能听懂的人工智能原理】&#xff0c;感兴趣的可自行到b站观看。 代码及工具箱 本专栏的代码和工具函数已经上传到GitHub&#xff1a;1571859588/xiaobai_AI: 零基础入门人工智能 (github.com)&#xff0c;可以找到对应课程的代码 正文 对于…

V.PS德国VPS详细测评

V.PS的德国机房位于法兰克福&#xff0c;默认接入电信CN2 GIA、联通CUII网络&#xff0c;针对中国大陆进行路由优化处理的。而且是强制移动走联通的CUII链路&#xff0c;确保三网都处在轻负载的网络环境下。 CPU是Intel Xeon Gold 6133 &#xff0c;启用了BBR&#xff0c;归属德…

Harbor系列之9:清理服务

清理服务 当从 Harbor 删除镜像时&#xff0c;空间不会自动释放。必须进行垃圾清理&#xff0c;才能从文件系统中彻底释放空间。 1. 垃圾清理 使用具有 Harbor 系统管理员权限的帐户登录 Harbor 界面。 选择系统管理 > 清理服务&#xff0c;点击立即清理垃圾&#xff1a;…

SAP MM学习笔记 - 豆知识02 - MR21 修改物料原价,MM02 修改基本数量单位/评价Class,MMAM 修改物料类型/评价Class

上一章讲了一些豆知识。比如 - MM50 批量扩张品目 - XK05/06 Block/消除供应商 - MM06/MM16 品目消除 - SE11/SE16/SE16/SE16N/SE16H/DB02 等查看常用的操作Table和数据的T-code SAP MM学习笔记- 豆知识01 - MM50 批量扩张&#xff0c;XK05/XK06 Block/消除供应商&#xf…

中国AI PC行业研究报告

核心摘要&#xff1a; 2020-2023年中国笔电出货量呈下降趋势&#xff0c;PC厂商亟需从产品形态、软硬技术、需求场景等角度寻求新的增长机会。而随着大模型、生成式AI技术的到来&#xff0c;其强大的数据处理、学习泛化与内容生成能力&#xff0c;高质效加速了各行各业人工智能…

万户 ezOFFICE 协同管理平台 getAutoCode接口SQL注入漏洞复现 [附POC]

文章目录 万户 ezOFFICE 协同管理平台 getAutoCode接口SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现0x06 修复建议万户 ezOFFICE 协同管理平台 getAutoCode接口SQL注入漏洞复现 [附POC] 0x01 前言 免…

书生大模型实战营——入门岛第1关

创建开发机 先在InternStudio平台创建开发机&#xff1a; SSH端口映射 点击SSH连接&#xff0c;复制登录命令&#xff1a; 本地打开powershell&#xff0c;粘贴登录命令&#xff0c;并在输入密码的地方粘贴密码&#xff0c;登录成功。 配置SSH密钥 使用RSA算法生成密钥&…

Java与模式及其应用场景知识点分享(电子版)

前言 Java 编程语言自1995年问世以来&#xff0c;其成功好像任何编程语言都无法媲美。生逢其时(互联网的兴起)固然是一方面的原因&#xff0c;而Java吸收总结了前人的经验教训&#xff0c;反映了最新技术(the state ofthe art)&#xff0c;对其受到欢迎和采用&#xff0c;恐怕…

vue3大屏可视化项目,包含地图,各种 图表,全屏适配方案

项目设计 1.始终满屏适配&#xff0c;这种方案一般用在屏幕变化不会特别的大项目&#xff0c;项目基本上不会用在比例非常不协调的大屏&#xff0c;设计图按1920*1080标准电脑屏幕比&#xff0c;所用的屏幕也基本在这个比例左右 2.涉及图表知识点简单&#xff0c;主要有自定义色…

关于 Codeforces 的界面问题

如果你出现了上述问题的话&#xff0c;你就下拉界面到最底层&#xff0c; 点击 desktop version 即可恢复