Go语言中文网 为您找到相关结果 40

一人千面:谈谈Go语言中的type

世界是复杂的。一个人、一个事物可以有多样的特性,而多个人多个事物又可以表现出一致的特性;从微观角度说,即具体到个体时,要求这个个体是多功能的多样性的,能够完成越多的功能具有越多的特性越好。比如一个人可以同时具有贤妻、慈母、严师和路人甲的身份,比如一个数字可以表示年龄、高度、分数等。从宏观角度说,从管理复杂性的角度出发,又要求许多的个体具有一致性以便进行统一处理以降低管理成本,比如各种机动车都可以“驾驶”,各种食物都可以“食用”,各种书写工具都可以“写”。换而言之:微观上一人千面;宏观上千人一面。 编程本质上是为了解决人类的问题满足人类的需要,所以需要把现实世界映射到编程语言里,即在编程语言中建立对应的模型。在Go语言里,提供了很好的机制来建立这种模型,也就是type和interface。ty...阅读全文

golang调用dll

//调用方式 func WindowVersion1() { h, err := syscall.LoadLibrary("kernel32.dll") if err != nil { fmt.Printf("Error: %s\n", err) return } defer syscall.FreeLibrary(h) proc, err := syscall.GetProcAddress(h, "GetVersion") if err != nil { fmt.Printf("Error: %s\n", err) return } r, _, _ := syscall.Syscall(uintptr(proc), 0, 0, 0, 0) major := byte(r) minor :=...阅读全文

博文 2014-10-04 19:27:11 陈好

技术分享 《分布式一致性raft算法实现原理》

这段时间跟同事聊了不少分布式系统中的常用算法协议,中间有聊到分布式一致性的话题,当然我们对一致性理解都是那种介绍的层次。 哈哈 , 后来用了心思去学习分布式一致性协议 raft, 现在有些心得,就拿出来给同事分享下。 先简单聊下什么是raft协议. 他用来做什么的? 分布式存储系统通常会维护多个副本,这样不仅能提高系统的可用性,因为有多个副本所以性能也有提高。但是多副本带来的代价就是分布式存储系统的核心问题之一: 需要维护多个副本的数据一致性。 Raft一致性协议就是用来干这事的,即使在部分副本宕机的情况下,只要符合raft的原则,照样可以对外提供服务。 Raft是一种较容易理解的一致性协议。 我曾经也写过工夫去学习paxos, 结果…. 我想大家都懂的,没搞明白。 学习paxos的过程是有...阅读全文

博文 2017-04-04 19:32:07 rfyiamcool

观察者模式 Go语言实现

模式组成: 观察者模式包含如下角色: 目标(Subject): 目标知道它的观察者。可以有任意多个观察者观察同一个目标。 提供注册和删除观察者对象的接口。 具体目标(ConcreteSubject): 将有关状态存入各ConcreteObserver对象。 观察者(Observer): 为那些在目标发生改变时需获得通知的对象定义一个更新接口。当它的状态发生改变时, 向它的各个观察者发出通知。 具体观察者(ConcreteObserver): 维护一个指向ConcreteSubject对象的引用。存储有关状态,这些状态应与目标的状态保持一致。实现O b s e r v e r的更新接口以使自身状态与目标的状态保持一致。 效果: Observer模式允许你独立的改变目标和观察者。你可以单独复用目...阅读全文

博文 2016-04-18 12:00:06 readen

一致性hash算法原理及golang实现

概述 这里存在一种场景, 当一个缓存服务由多个服务器组共同提供时, key应该路由到哪一个服务.这里假如采用最通用的方式key%N(N为服务器数目), 这里乍一看没什么问题, 但是当服务器数目发送增加或减少时, 分配方式则变为key%(N+1)或key%(N-1).这里将会有大量的key失效迁移,如果后端key对应的是有状态的存储数据,那么毫无疑问,这种做法将导致服务器间大量的数据迁移,从而照成服务的不稳定. 为了解决类问题,一致性hash算法应运而生. 1. 一致性hash算法特点 在分布式缓存中, 一个好的hash算法应该要满足以下几个条件: 均衡性(Balance) 均衡性主要指,通过算法分配, 集群中各节点应该要尽可能均衡. 单调性(Monotonicity) 单调性主要指当集群发生...阅读全文

博文 2016-09-10 16:00:01 u010511236

Golang的一致性哈希实现

Golang的一致性哈希实现 一致性哈希的具体介绍,可以参考:http://www.cnblogs.com/haippy/archive/2011/12/10/2282943.html 1 import ( 2 "hash/crc32" 3 "sort" 4 "strconv" 5 "sync" 6 ) 7 ​ 8 const DEFAULT_REPLICAS = 100 9 type SortKeys []uint32 10 ​ 11 func (sk SortKeys) Len() int { 12 return len(sk) 13 } 14 ​ 15 func (sk SortKeys) Less(i, j int) bool { 16 return sk[i] < sk[j] 17...阅读全文

博文 2016-04-21 03:00:03 ldaniel

golang实现读取当前所在文件夹里面的txt数据,去除空格,以列的形式保存在excel中

假如原始数据在txt中,格式如下: 1.23 486 89.001 456.2 8.25 96.01 456.01 456.6 456.1 每一行的空格数量不同,但是数字数量相同,列数保持一致。希望将这些数据保持所在行数和列数不变,保存在excel中。 保存在excel中,格式如下: col1 col2 col3 row1 1.23 486 89.001 row2 456.2 8.25 96.01 row3 456.01 456.6 465.1 golang代码如下: package main import ( "encoding/csv" "fmt" "io/ioutil" "os" "os/exec" "path/filepath" "strings" ) func main() { d...阅读全文

博文 2016-11-17 13:00:04 su_sai

Go-Structure

定义&赋值 要点: - 定义一个新的结构体 - 结构体对象的声明与初始化 - 对象和指针 package main import "fmt" type Point struct { x float64 y float64 } /* You could write the code as below, which is more convenient. type Point struct { x,y float64 } */ func print(p Point) { fmt.Printf("Point[x=%.2f, y=%.2f]\n", p.x, p.y) } func main() { var p1 Point; // all fields are set to default val...阅读全文

博文 2016-09-01 13:00:08 u013344915

Go-Structure

定义&赋值 要点: - 定义一个新的结构体 - 结构体对象的声明与初始化 - 对象和指针 package main import "fmt" type Point struct { x float64 y float64 } /* You could write the code as below, which is more convenient. type Point struct { x,y float64 } */ func print(p Point) { fmt.Printf("Point[x=%.2f, y=%.2f]\n", p.x, p.y) } func main() { var p1 Point; // all fields are set to default val...阅读全文

博文 2016-09-22 02:00:00 u013344915

Key/Value 数据库SummitDB

SummitDB 是一个内存中的 Key/Value 数据库,支持数据持久化到磁盘,使用 Raft 一致性算法,遵循 ACID ,内建事务支持和强一致性模型。支持自定义索引、地理数据和 JSON 文档,支持用户定义 JS 脚本。兼容简化的 Redis API。 示例: SummitDB 支持 Linux, OSX, Windows, FreeBSD, ARM (Raspberry PI) 等系统...阅读全文

开源项目 2017-10-05 23:00:05 网友

golang go 包管理工具 go mod的详细介绍 --- 赶紧拥抱 go mod吧,go path的那套东西已经out了。

go mod go官方的module管理工具 原文:https://github.com/googege/blog 用法: 在一个非go path的路径中新建一个项目,然后使用go mod init 就可以初始化一个新的包(要开启这个 export GO111MODULE=on写入.bash_profile即可 win的同学自己找找设置 GO111MODULE的win版本设置方法哈),其实跟github(gitlab都行)用在一起更好 在github上新建一个项目,例如说 test 在本地将这个远程包给clone过来,然后这个文件夹里面就是一个.git 隐藏的文件项目这个就是git的管理文件包 将此包放在远离 go path的文件路径里,然后使用 go mod init 就可以创建一个名为 ...阅读全文

博文 2019-02-16 21:34:44 googege

Go小技巧(一)— 获取channel属性

概述 这里一个介绍一个方法,可以在不取channel里的数据的前提下,查看channel是否关闭,是否阻塞,缓冲大小,通道内当前缓冲数据量等。 在这里需要了解一下golang的内存模型,然后通过指针取出相应的值。 channel的结构体在chan.go中: type hchan struct { qcount uint // total data in the queue dataqsiz uint // size of the circular queue buf unsafe.Pointer // points to an array of dataqsiz elements elemsize uint16 closed uint32 //... 以下字段没有用上,先省略 } 从上面可以...阅读全文

编写地道的Go代码

最地道的Go代码就是Go的标准库的代码,有空的时候可以多看看Google的工程师是如何实现的。 1. 注释 可以通过/* ... */或者//增加注释, //之后应该有个空格 如果想在每个文件的头部加上注释,需要在版权注释和Package前面加一个空行,否则版权注释会作为package的注释 // Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. /* Package net provides a portable interface...阅读全文

博文 2017-08-18 09:05:22 iCaptain

golang ntp协议客户端

NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步。NTP基于UDP报文进行传输,使用的UDP端口号为123。 使用NTP的目的是对网络内所有具有时钟的设备进行时钟同步,使网络内所有设备的时钟保持一致,从而使设备能够提供基于统一时间的多种应用。 对于运行NTP的本地系统,既可以接收来自其他时钟源的同步,又可以作为时钟源同步其他的时钟,并且可以和其他设备互相同步。 相信文本介绍看多也厌倦了,就不多废话,直接上干活 ntp.go package main import ( "bytes" "encoding/binary" ) const ( UNIX_STA_TIMESTAMP = 22089...阅读全文

博文 2018-08-16 00:30:01 mengdejun

Golang学习笔记3——常量与运算符

1.常量的定义 常量的值在编译时就已经确认 常量的定义格式与变量基本相同 等号右侧必须是常量或者常量表达式 常量表达式中的函数必须是内置函数 //定义单个常量 const a int = 1 const b = "A" const ( text = "123" length = len(text) num = b * 20 ) //同时定义多个变量 const i, j, k = 1, "2", "3" const ( text2 ,length2, num2 = "456", len(text2), k* 10 ) 2.常量的初始化规则 在定义常量组时,如果不提供初始值,则表示使用上行的表达式 var a = 1 const ( b = a //此时报错,因为全局变量在编译时不能确定值,常...阅读全文

博文 2017-10-24 16:00:01 marks-gui

go - 使用 gomod 管理项目依赖

go 1.11.1开始可以使用更优雅灵活的module机制做包依赖管理,能直接感受到的优点如下: 项目路径可以脱离$GOPATH了,不需要必须放在$GOPATH/src下。 项目内部模块的引入是基于moduleName而不再死板的基于projectName了。 半自动维护依赖,如果你很懒,你甚至可以不需要使用get预先安装依赖,module在run test build时会检测未下载的依赖,并自动下载它们。 回想以前吧!$GOPATH/src/projectName后,项目中各模块互相引用的话都是基于projectName(go 的包加载机制导致的,去 $GOROOT/src 和 $GOPATH/src 去寻址,所以projectName也需要作为包引入路径的一部分),别人使用你的项目时也必...阅读全文

博文 2019-07-10 20:32:38 big_cat

大数据架构师工作内容有哪些?

架构师按照专注领域不同,可分为企业架构师、基础结构架构师、特定技术架构和解决方案架构师等,专职架构师往往偏向基础结构架构师和特定技术架构师,专职架构师不负责具体的业务系统,而又对所有的系统负责,很少直接负责项目,但对项目要有提前把控,面对的是更大的团队和更大的问题域。 想要成为专职架构师,就要明确专职架构师的职责,以下是专职架构师常见职责: **职责一:全局的技术规划** 全局技术规划是专职架构师必须要做的工作,全局技术规划要能非常明确的指引整个团队在同一时间向同一个方向前进,这对架构师的心力和体力都是有很大的考验,全局规划不仅要与业务紧密沟通,还必须有对应的技术深度和广度,应采取正确的方法论,勇敢做出判断和决策! **职责二:统一的方法&规范&机制** 专职架...阅读全文

字节跳动 招人,社招岗位,强力内推

岗位介绍:https://job.bytedance.com/society 技术,ui,产品都招。 内推邮箱:bytedance_recruit@163.com 附上你的简历,并在邮件标题上写上自己的名字和想投递的岗位和城市,同时写上自己的微信号,我帮你内推了之后会加你的微信和你保持联系,同时我也会向你证明我是字节跳动的员工,而非猎头什么的,并帮你敦促hr安排面试...阅读全文

一致性hash算法原理及golang实现

概述 这里存在一种场景, 当一个服务由多个服务器组共同提供时, key应该路由到哪一个服务.这里假如采用最通用的方式key%N(N为服务器数目), 这里乍一看没什么问题, 但是当服务器数目发送增加或减少时, 分配方式则变为key%(N+1)或key%(N-1).这里将会有大量的key失效迁移,如果后端key对应的是有状态的存储数据,那么毫无疑问,这种做法将导致服务器间大量的数据迁移,从而照成服务的不稳定. 为了解决类问题,一致性hash算法应运而生. 1. 一致性hash算法特点 在分布式缓存中, 一个好的hash算法应该要满足以下几个条件: 均衡性(Balance) 均衡性主要指,通过算法分配, 集群中各节点应该要尽可能均衡. 单调性(Monotonicity) 单调性主要指当集群发生变化...阅读全文

NoSQL笔记

#### 非关系数据库的相关问题 * 什么是最终一致性(Eventual Consistency)? "过程松,结果紧,最终结果必须保持一致性" 最终一致性模型是用于分布式系统中,用来实现高可用性,确保在如果一个更新操作发生,那么最终一定可以读取到这次更新操作的发生。最终一致性在分布式领域广泛使用,采用多个副本形式。如果一个系统实现了最终一致性,那么这个系统可以成为收敛的,或者叫做实现了副本收敛。相比与传统的ACID,最终一致性提供的是BASE(Basic Availablilty, Soft state, Eventual Consistency)服务。 最终一致性缺点:在系统达到副本收敛之前,系统有可能返回任何值。 * NoSQL是如何解决可伸缩性的挑战的...阅读全文

独孤九剑(0x03) - 当前目录缓存篇

每个人都会变成自己讨厌的人 Git 通过二进制文件 .git/index 来缓存当前目录,实现工作目录和仓库数据的快速交换。Git 的缓存却保存在 index 文件里,为什么不是 cache,很奇怪。 Git 当前目录缓存至少应该满足以下功能: 可随时根据当前仓库(HEAD 状态)生成缓存。 缓存不一定总是和仓库状态保持一致。 缓存数据格式固定,可长期被多个 Git 命令解析。 Git index 文件格式 当前目录缓存文件承担多个 Git 命令之间的数据交换和传递,它的文件格式也比较重要。 Git index (version 2) 使用二进制方式存储,存储内容如下: 详细的格式可以在这里找到 Git index format。 看到了 Linus 在一开始就设计了版本号,为以后 inde...阅读全文

博文 2017-02-09 08:29:51 zddhub

【Golang】学习笔记2 -- 代码目录结构、应用编译、自定义包及远程包的引用

前言 前面一篇文章我们介绍了怎么在windows下安装配置GO开发环境。这一篇我们来介绍代码Golang的目录结构、应用编译、自定义包及远程包的引用。 代码目录结构 上一篇末尾我们设置的GOPATH下的src目录就是我们接下来开发程序的主要目录,所有的源码都是放在这个目录下面,一般的做法就是一个目录一个项目。 例如: %GOPATH%/src/mymath 这个目录就代表mymath这个应用包或者可执行应用(根据package是main还是其他来决定,如果是main就是可执行应用,非main就是应用包。) 所以当我们新建应用或者一个代码包时都是在src目录下新建一个文件夹,文件夹名称一般是代码包名称。当然新建多级目录也是可以的,例如在src下面新建了目录%GOPATH%/src/github...阅读全文

博文 2018-08-04 00:30:01 Detector

Terraform 开发指南

本文主要向大家展示如何为阿里云 Terraform Provider 贡献自己的力量,帮助开发者和志同道合的朋友尽快加入到开源生态的建设中来。本文面向所有的对Terraform熟悉和感兴趣的朋友,如果您还不了解Terraform,快快戳这里。本文会从环境搭建和开发规范两个方面向大家展示如何开放 terraform provider。环境搭建安装 Golang本地安装go >1.10.0 详见:https://golang.org/dl/安装 Terraform本地安装 Terraform > 0.11, 详见: https://www.terraform.io/intro/getting-started/install.html安装 Terraform Provider1、fork 并下载 ...阅读全文

博文 2018-07-18 17:34:50 阿里云云栖社区

Go-Mega Go Web 开发教程分享

![](https://user-gold-cdn.xitu.io/2018/12/6/167813c18f9a1148?w=286&h=458&f=png&s=42847) * 教程GitHub地址: https://github.com/bonfy/go-mega * * 项目展示地址: https://go-mega.herokuapp.com 初衷 -- 想起我当时入门 Python Web 的时候也是看了当时[Miguel Grinberg](http://link.zhihu.com/?target=https%3A//blog.miguelgrinberg.com/)的博客,按照他的教程一步一步搭建最简单的博客,再到自己去研究**Flask**源码以及...阅读全文

Go语言的垃圾回收算法被吹过头了?与Java相比如何?

Go语言正在构建的垃圾收集器(GC),似乎并不像宣传中那样的,技术上迎来了巨大突破。那么,与Java语言作对比之后,该怎么选择呢? 写在前面 最近,我读到一些大肆宣传Go语言最新垃圾回收器的文章,这些文章对垃圾回收器的描述让我感到有些厌烦。这些文章有些是来自Go项目。他们宣称GC技术正迎来巨大突破。 Go正在构建一个划时代垃圾回收器,2015年,甚至到2025年,或者更久……Go 1.5的GC把我们带入了一个新时代,垃圾回收停顿不再成为使用新语言的障碍。应用程序可以很容易地随着硬件进行伸缩,而且随着硬件越来越强大,GC不再是构建可伸缩软件的阻碍。一个新的时代正在开启。Go团队不仅宣称他们已经解决了GC停顿问题,而且让整件事情变得更加“傻瓜”化: 从更高层面解决性能问题的方式之一是增加GC选项...阅读全文

博文 2019-03-23 13:35:11 java185690

弹性与性能兼俱,阿里云神龙云服务器全解析

摘要: 10月12日,在2017杭州云栖大会上,阿里云副总裁李津发布了全新一代的计算类服务器产品--神龙云服务器(X-Dragon Cloud Server)。 神龙云服务器是一种可水平弹性伸缩的高性能计算服务,融合了物理机与云服务器的各自优势,实现超强超稳的计算能力。神龙云服务器采用阿里云自主研发的虚拟化2.0技术,让神龙云服务器兼有普通云服务器的弹性和体验,以及物理机的高计算性能和完整特性,同时具备物理级别隔离的优势,真正做到资源零争抢。 ​ 先来看一张干货表格,了解神龙云服务器与传统物理机和虚拟机的功能对比 神龙云服务器具有四大突出亮点:极致性能、机密计算、秒级交付、与阿里云全站云产品互联互通。 作为一款云端弹性计算类产品,神龙云服务器达到了当前世...阅读全文

doublejump - 快速、简洁的一致性哈希库,Google Jump 算法的改进版

Overview doublejump 的核心是 Google Jump 一致性哈希算法,这个实现弥补了该算法的最大缺点:不能删除节点。 传送门 https://github.com/edwingeng/doublejump Benchmark BenchmarkDoubleJumpWithoutLock/10-nodes 50000000 27.6 ns/op BenchmarkDoubleJumpWithoutLock/100-nodes 30000000 42.7 ns/op BenchmarkDoubleJumpWithoutLock/1000-nodes 30000000 54.1 ns/op BenchmarkDoubleJump/10-nodes 20000000 72.9 n...阅读全文

博文 2018-11-19 19:34:40 edwingeng

2018.8.24求职者——与候选人的朋友关系

这几天有一个紧急的岗位——安全负责人,时间迫切,所以十八般武艺都用上了。在还没有合适的候选人时,突然想起了前段时间认识的一个做安全的哥们C先生。那会儿认识C先生,也是因岗位而结识成为朋友。两个月以前,我运作某区块链公司的安全岗位,当时推荐C先生去面试,面试通过,但是最后还是因为各种原因没能为他促成offer,我一直觉得可惜。因为C先生聪明,性格豁达,并且在安全领域辛勤耕耘六年,在知名的乙方安全公司及知名互联网公司都历练过,而且还是一名坚定的区块链爱好者。喜欢炒币,更是在早几年与朋友一起挖过矿,他说自己非常看好区块链的未来。虽然合作没有完美落幕,不过并不影响我们变成朋友,我们保持联系至今。所以这次招聘的岗位我与他联系后,他五分钟之后就给我引荐了一位大牛!很感恩身边有这样的朋友,不论工作还是生活...阅读全文

vim8 配置NERD tree树形目录插件

vim8配置树目录网上有很多教程,我这边记录一下,备忘:1.下载NERD tree 下载地址是:https://www.vim.org/scripts/s... wget https://www.vim.org/scripts/download_script.php?src_id=23731 这个链接有可能会变化。。 我这里下载的是5.0.0的 加压配置cd ~ll .vim #我这里面没有任何文件mkdir -p .vim/pack/NERD_tree/start/NERD_tree #NERD_tree目录名称要和插件名称保持一致...cd .vim/pack/NERD_tree/start/NERD_tree cp ~/nerd_tree/nerd_tree.zip ./ #将压缩包复...阅读全文

博文 2018-12-12 18:34:47 wangyibo5843

golang基础(3)函数

我们还是用 javascript 来做对比,在golang 语言中 func 关键字来声名函数 func foo(){ // do stuff... } func foo(){ // do stuff... return 3; // foo 应该无返回值 } foo(x,y) // 调用时应该无参数 我们在定义 foo 然后返回一个数值,需要为函数 foo 指定返回值类型,否则默认为无返回值,而且 golang 作为一门静态语言,没有 javascript 那么自由,我们函数也需要根据函数声名时参数保存一致 func foo(x string, y bool) int { // do stuff... return 3; } func foo(x string, y bool) int { ...阅读全文

golang实现一致性hash

package main //一致性哈希(Consistent Hashing) //author: Xiong Chuan Liang //date: 2015-2-20 import ( "fmt" "hash/crc32" "sort" "strconv" "sync" ) const DEFAULT_REPLICAS = 160 type HashRing []uint32 func (c HashRing) Len() int { return len(c) } func (c HashRing) Less(i, j int) bool { return c[i] < c[j] } func (c HashRing) Swap(i, j int) { c[i], c[j] = c[...阅读全文

博文 2019-08-13 12:32:49 成功的失败者

程序员该如何谈自己的薪资和待遇?

工作多年想要跳槽的求职者。相信很多人在找工作时最惨痛的经历就是:总是羞于谈薪酬待遇。大概这是很多职场人都会遇到过的尴尬吧。 然而这个坎如果你自己不去过,以后多的是坎儿跟你整。 很多人不知道:你入职时谈定的基础工资,将决定以后你在这个公司的岗位级别和晋升程度。 ![](https://upload-images.jianshu.io/upload_images/11633898-f09be6c3b2f49230.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 说白了就是,基础工资越低,你以后晋升就越慢——所以尽可能地与雇用单位谈判,抬高你的基础薪资。而如何巧妙的达到目的,这时就需要一定的聊天技巧: *...阅读全文

doublejump - 又快又简洁的一致性哈希库,Google Jump 算法的改进版

# Overview ***doublejump*** 的核心是 Google Jump 一致性哈希算法,这个实现弥补了该算法的最大缺点:不能删除节点。 # Benchmark ``` BenchmarkDoubleJumpWithoutLock/10-nodes 50000000 27.6 ns/op BenchmarkDoubleJumpWithoutLock/100-nodes 30000000 42.7 ns/op BenchmarkDoubleJumpWithoutLock/1000-nodes 30000000 54.1 ns/op BenchmarkDoubleJump/10-nodes ...阅读全文

期货合约系统开发,比特币永续合约系统开发

期货合约系统开发,比特币永续合约系统开发 永续合约就是一个可以永远交易的期货合约,它完美结合了现货交易和期货交易的优势。源中瑞比特币期货系统开发 Tel/V: 13823153201 Q/:2756126100 永续合约交易模式和期货一样是保证金交易,但是不同于期货交易的是它可以像现货交易一样长期持有,没有交割日,即投资者的仓位只要没有爆仓强平就永远不会被动平仓,投资者的委托挂单只要不是主动撤回会永远保留直到达成交易,绝大程度上避免了交割时价格被操控的风险。 归根结底永续合约也属合约交易,交易模式与期货合约大体相同,同样需要保证金进行交易、合约期间可增加或减少保证金数量等。 期货合约之所以要设定交割日期,是因为它的交割结算是以现货为准。越临近交割日,期货合约的...阅读全文