具体步骤:
1、去官网下载go1.1.2的tarball,一般下载到tem目录
2、打开终端cd /usr/local, tar -zxvf go1.1.2.linux-386.tar.gz
将源码文件解压缩到/usr/local目录,如果解压到其他目录,需要自己设置GOROOT
3、安装gcc工具,因为golang有些功能是使用c写
sudo apt-get install bison gawk gcc libc6-dev make
4、$ cd go/src,$ ./all.bash
运行bash脚本,如果运行正常会获得你的操作系统和cpu信息,自动编译安装
5、将export PATH=$PATH:/usr/local/go/bin 写入$HOME/.profile
最后进行测试输入go version 会显示go1.1.2 linux/386
怎么用notepad++配置go语言开发环境1、下载go的zip文件。并且一定要把文件解压到c:\go目录下。
2、配置windows的高级环境变量。包括:GOROOT、GOOS、GOBIN、GOARCH。并且在path变量里面把c:\go\bin加入。以便可以在命令行直接运行go命令。
举例:我的机器:
GOPATH= c:\goc:\go\srcF:\workspace\goSample01
GOBIN=c:\go\binF:\workspace\goSample01\bin
其中,c:\go是go的安装路径;
F:\workspace\goSample01是我写的go语言项目的工程目录;
F:\workspace\goSample01\bin是go语言项目的工程目录下的可执行文件路径
3、在完成环境变量配置后,打开一个命令行窗口,直接输入go,然后回车,看看是否出现go的帮助信息。如果出现,那么go的基本环境就OK了。
注意:这个基本环境不包含开发工具,也不能直接编译带C代码的go程序。
import java.awt.*import java.awt.event.*
import javax.swing.*
public class Calculator implements ActionListener{
private double data1=0.0,data2=0.0
private String t_content
boolean number=false
//key为0标示+,为1表示-,为2表示*,为3表示/
short key=-1
//pkey的取值为-1~5
//pkey为-1表示第一次按下=按钮,为5说明不是第一次按下=按钮
//pkey为其他值0,1,2,3时分别代表+,-,*,/
short pkey=-1
Frame frame=new Frame("Calculator")//定义标题为Calculator的窗体
TextField textfield=new TextField(30)//定义计算机
//定义backspace,ce,c0按钮
Button backspace=new Button("Backspace")
Button ce=new Button("CE")
Button c0=new Button("C")
//定义面板,其中backspace,ce,c0按钮和计算机兰textfeild放在面板p1中
//其余按钮放在面板p2中
Panel p1=new Panel()
Panel p2=new Panel()
//定义界面上的按钮数组,即除去backspace,ce,c0按钮的所有按钮
String names[]=
Button bb[]=new Button[names.length]
public static void main(String[] args){
Calculator cal=new Calculator()
cal.go()
}
public void go(){
frame.setSize(300,200)
frame.setLayout(new BorderLayout())
Font fonts=new Font("楷体_GB2312",Font.PLAIN,12)// 第一页
//设置面板p1的字体和布局管理类型,将textfeild对象添加到面板中
p1.setFont(fonts)
p1.setLayout(new GridLayout(2,1,5,10))
textfield.setFont(fonts)
p1.add(textfield,null)
//backspace,ce,c0按钮注册addActionListener方法
backspace.addActionListener(this)
ce.addActionListener(this)
c0.addActionListener(this)
//将backspace,ce,c0按钮添加到p1面板中
p1.add(backspace,null)
p1.add(ce,null)
p1.add(c0,null)
//设置面板p2的布局管理器类型为GridLayout
p2.setLayout(new GridLayout(4,5,5,5))
//为按钮组中的按钮注册addActionListener方法
for(int i=0i<names.lengthi++){
bb[i]=new Button(names[i])
p2.add(bb[i])
bb[i].addActionListener(this)
}
//设置面板p1和面板p2在窗体中的位置
//面板p1在窗体的North方向,面板p2在窗体的South方向
frame.add(p1,BorderLayout.NORTH)
frame.add(p2,BorderLayout.SOUTH)
frame.setVisible(true)
//当单击关闭按钮时退出系统
frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0)
}
})
}
public void actionPerformed(ActionEvent ae){
String s
//通过ActionEvent类的getActionCommand()方法,得出动作是由哪个按钮触发的。 //第二页
s=ae.getActionCommand()
//用户单击一次,计算栏里便去掉一个字符
//先将计算栏里的字符清空,再添加除最好一个字符的字符串
if(s.equals("Backspace")&&number){
t_content=textfield.getText()
textfield.setText("")
for(int i=0i<t_content.length()-1i++){
char c=t_content.charAt(i)
textfield.setText(textfield.getText()+c)
}
}
//用户单击的是CE按钮,计算栏清空
if(s.equals("CE")){
textfield.setText("")
number=false
}
//用户单击的是C按钮
if(s.equals("C")){
textfield.setText("")
data1=data2=0.0
number=false
}
//用户单击的是sqrt按钮,其中负数不能被开方
if(s.equals("sqrt")&&number){
t_content=textfield.getText()
if(t_content.charAt(0)=='-'){
textfield.setText("负数不能被开方")
number=false
}else{
textfield.setText(Double.toString(java.lang.Math.sqrt(Double.parseDouble(t_content))))
}
}
//用户单击的是1/x求倒数按钮,求倒数时分母不能为0
if(s.equals("1/x") &&number){
t_content=textfield.getText()
if(t_content.equals("0")){ //第三页
textfield.setText("零不能求倒数")
number=false
}else{
textfield.setText(Double.toString(1/Double.parseDouble(t_content)))
}
}
//用户单击的是%按钮
if(s.equals("%")&&number){
if(data2==0){
t_content=textfield.getText()
textfield.setText(t_content)
}else{
boolean g=false
for(int i=0i<textfield.getText().length()i++)
if('.'==textfield.getText().charAt(i)){
g=true
break
}
//如果是Double 数,除100
if(g=true){
double dtemp=Double.parseDouble(textfield.getText())
dtemp=dtemp/100.0
textfield.setText(Double.toString(dtemp))
}
//如果是int数但能被100整除,则去掉末尾两个0
else{
if(Integer.parseInt(textfield.getText())%100==0){
int itemp=Integer.parseInt(textfield.getText())
itemp/=100
textfield.setText(Integer.toString(itemp))
}
//如果是int数,但不能被100整除,则按Double数处理
else{
double dtemp=Double.parseDouble(textfield.getText())
dtemp=dtemp/100.0
textfield.setText(Double.toString(dtemp))
}
}
} //第四页
}
//对正负数字的处理
if(s.equals("+/-")){
t_content=textfield.getText()
if(t_content.charAt(0)=='-'){
textfield.setText("")
String content
for(int i=1i<t_content.length()i++){
textfield.setText(textfield.getText()+t_content.charAt(i))
}
}else{
textfield.setText("-"+t_content)
}
}
//所按下的按钮为+按钮
if(s.equals("+")){
switch(pkey){
case 0:
data2+=Double.parseDouble(textfield.getText())
break
case 1:
data2+=Double.parseDouble(textfield.getText())
break
case 2:
data2+=Double.parseDouble(textfield.getText())
break
case 3:
if(textfield.getText().equals("0")){
textfield.setText("除数不能为零")
number=false
}else{
key=-1
data2/=data1
textfield.setText(Double.toString(data2))
break
}
default:
data2=Double.parseDouble(textfield.getText())
}
pkey=key=0
textfield.setText("")
}
//第五页
//所按下的按钮为-按钮
if(s.equals("-")){
switch(pkey){
case 0:
data2+=Double.parseDouble(textfield.getText())
break
case 1:
data2+=Double.parseDouble(textfield.getText())
break
case 2:
data2+=Double.parseDouble(textfield.getText())
break
case 3:
if(textfield.getText().equals("0")){
textfield.setText("除数不能为零")
number=false
}else{
key=-1
data2/=data1
textfield.setText(Double.toString(data2))
break
}
default:
data2=Double.parseDouble(textfield.getText())
}
pkey=key=1
textfield.setText("")
}
//所按下的按钮为*按钮
if(s.equals("*")){
switch(pkey){
case 0:
data2+=Double.parseDouble(textfield.getText())
break
case 1:
data2+=Double.parseDouble(textfield.getText())
break
case 2:
data2+=Double.parseDouble(textfield.getText())
break
case 3:
if(textfield.getText().equals("0")){// 第六页
textfield.setText("除数不能为零")
number=false
}else{
key=-1
data2/=data1
textfield.setText(Double.toString(data2))
break
}
default:
data2=Double.parseDouble(textfield.getText())
}
pkey=key=2
textfield.setText("")
}
//所按下的按钮为/按钮
if(s.equals("/")){
switch(pkey){
case 0:
data2+=Double.parseDouble(textfield.getText())
break
case 1:
data2+=Double.parseDouble(textfield.getText())
break
case 2:
data2+=Double.parseDouble(textfield.getText())
break
case 3:
if(textfield.getText().equals("0")){
textfield.setText("除数不能为零")
number=false
}else{
key=-1
data2/=data1
textfield.setText(Double.toString(data2))
break
}
default:
data2=Double.parseDouble(textfield.getText())
}
pkey=key=3
textfield.setText("")
} //第七页
//所按下的按钮为=,求结果
if(s.equals("=")&&number){
//如果不是第一次按下=按钮
if(pkey==5){
switch(pkey){
case 0:
data2+=data1
textfield.setText(Double.toString(data2))
break
case 1:
data2-=data1
textfield.setText(Double.toString(data2))
break
case 2:
data2*=data1
textfield.setText(Double.toString(data2))
break
case 3:
if(textfield.getText().equals("0")){
textfield.setText("除数不能为零")
number=false
}else{
data2/=data1
textfield.setText(Double.toString(data2))
break
}
}
}
//如果是第一次按下=按钮
else{
data1=Double.parseDouble(textfield.getText())
switch(key){
case 0:
key=-1
data2+=Double.parseDouble(textfield.getText())
textfield.setText(Double.toString(data2))
break
case 1:
key=-1
data2-=Double.parseDouble(textfield.getText())
textfield.setText(Double.toString(data2)) //第八页
break
case 2:
key=-1
data2*=Double.parseDouble(textfield.getText())
textfield.setText(Double.toString(data2))
break
case 3:
if(textfield.getText().equals("0")){
textfield.setText("除数不能为零")
number=false
}else{
key=-1
data2/=Double.parseDouble(textfield.getText())
textfield.setText(Double.toString(data2))
break
}
}
}
pkey=5
}
//按下的按钮时数字按钮
else{
switch(s.charAt(0)){
case'0':
case'1':
case'2':
case'3':
case'4':
case'5':
case'6':
case'7':
case'8':
case'9':
number=true
textfield.setText(textfield.getText()+s)
break
//对.的处理
case'.':
t_content=textfield.getText()
boolean g=false //第九页
//对计算机栏中的数据进行检验
//如果其中有小数点,则用户单击该按钮时不在添加小数点
for(int i=0i<t_content.length()i++){
if(t_content.charAt(i)=='.'){
g=true
break
}
}
//数据中已经有小数点
if(g==true)
break
// 数据中没有小数点,当用户单击小数点时添加小数点
if(g==false)
textfield.setText(t_content+".")
}
}
}
private String Integer(String string) {
// TODO Auto-generated method stub
return null
}
}