mirror of
				https://github.com/gopl-zh/gopl-zh.github.com.git
				synced 2025-10-31 18:21:36 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			2189 lines
		
	
	
		
			70 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			2189 lines
		
	
	
		
			70 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE HTML>
 | |
| <html lang="zh-tw" >
 | |
|     
 | |
|     <head>
 | |
|         
 | |
|         <meta charset="UTF-8">
 | |
|         <meta http-equiv="X-UA-Compatible" content="IE=edge" />
 | |
|         <title>reflect.Type和reflect.Value | Go编程语言</title>
 | |
|         <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
 | |
|         <meta name="description" content="">
 | |
|         <meta name="generator" content="GitBook 2.5.2">
 | |
|         
 | |
|         
 | |
|         <meta name="HandheldFriendly" content="true"/>
 | |
|         <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
 | |
|         <meta name="apple-mobile-web-app-capable" content="yes">
 | |
|         <meta name="apple-mobile-web-app-status-bar-style" content="black">
 | |
|         <link rel="apple-touch-icon-precomposed" sizes="152x152" href="../gitbook/images/apple-touch-icon-precomposed-152.png">
 | |
|         <link rel="shortcut icon" href="../gitbook/images/favicon.ico" type="image/x-icon">
 | |
|         
 | |
|     <link rel="stylesheet" href="../gitbook/style.css">
 | |
|     
 | |
|         
 | |
|         <link rel="stylesheet" href="../gitbook/plugins/gitbook-plugin-highlight/website.css">
 | |
|         
 | |
|     
 | |
|         
 | |
|         <link rel="stylesheet" href="../gitbook/plugins/gitbook-plugin-search/search.css">
 | |
|         
 | |
|     
 | |
|         
 | |
|         <link rel="stylesheet" href="../gitbook/plugins/gitbook-plugin-fontsettings/website.css">
 | |
|         
 | |
|     
 | |
|     
 | |
| 
 | |
|         
 | |
|     
 | |
|     
 | |
|     <link rel="next" href="../ch12/ch12-03.html" />
 | |
|     
 | |
|     
 | |
|     <link rel="prev" href="../ch12/ch12-01.html" />
 | |
|     
 | |
| 
 | |
|         
 | |
|     </head>
 | |
|     <body>
 | |
|         
 | |
|         
 | |
|     <div class="book" data-level="12.2" data-chapter-title="reflect.Type和reflect.Value" data-filepath="ch12/ch12-02.md" data-basepath=".." data-revision="Mon Dec 14 2015 11:30:54 GMT+0800 (中国标准时间)">
 | |
|     
 | |
| 
 | |
| <div class="book-summary">
 | |
|     <nav role="navigation">
 | |
|         <ul class="summary">
 | |
|             
 | |
|             
 | |
|             
 | |
|             
 | |
| 
 | |
|             
 | |
| 
 | |
|             
 | |
|     
 | |
|         <li class="chapter " data-level="0" data-path="index.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../index.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                         前言
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="0.1" data-path="ch0/ch0-01.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch0/ch0-01.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>0.1.</b>
 | |
|                         
 | |
|                         Go語言起源
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="0.2" data-path="ch0/ch0-02.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch0/ch0-02.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>0.2.</b>
 | |
|                         
 | |
|                         Go語言項目
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="0.3" data-path="ch0/ch0-03.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch0/ch0-03.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>0.3.</b>
 | |
|                         
 | |
|                         本書的組織
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="0.4" data-path="ch0/ch0-04.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch0/ch0-04.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>0.4.</b>
 | |
|                         
 | |
|                         更多的信息
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="0.5" data-path="ch0/ch0-05.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch0/ch0-05.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>0.5.</b>
 | |
|                         
 | |
|                         緻謝
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="1" data-path="ch1/ch1.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch1/ch1.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>1.</b>
 | |
|                         
 | |
|                         入門
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="1.1" data-path="ch1/ch1-01.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch1/ch1-01.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>1.1.</b>
 | |
|                         
 | |
|                         Hello, World
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="1.2" data-path="ch1/ch1-02.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch1/ch1-02.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>1.2.</b>
 | |
|                         
 | |
|                         命令行參數
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="1.3" data-path="ch1/ch1-03.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch1/ch1-03.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>1.3.</b>
 | |
|                         
 | |
|                         査找重復的行
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="1.4" data-path="ch1/ch1-04.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch1/ch1-04.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>1.4.</b>
 | |
|                         
 | |
|                         GIF動畫
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="1.5" data-path="ch1/ch1-05.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch1/ch1-05.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>1.5.</b>
 | |
|                         
 | |
|                         穫取URL
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="1.6" data-path="ch1/ch1-06.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch1/ch1-06.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>1.6.</b>
 | |
|                         
 | |
|                         併髮穫取多個URL
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="1.7" data-path="ch1/ch1-07.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch1/ch1-07.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>1.7.</b>
 | |
|                         
 | |
|                         Web服務
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="1.8" data-path="ch1/ch1-08.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch1/ch1-08.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>1.8.</b>
 | |
|                         
 | |
|                         本章要點
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="2" data-path="ch2/ch2.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch2/ch2.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>2.</b>
 | |
|                         
 | |
|                         程序結構
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="2.1" data-path="ch2/ch2-01.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch2/ch2-01.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>2.1.</b>
 | |
|                         
 | |
|                         命名
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="2.2" data-path="ch2/ch2-02.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch2/ch2-02.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>2.2.</b>
 | |
|                         
 | |
|                         聲明
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="2.3" data-path="ch2/ch2-03.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch2/ch2-03.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>2.3.</b>
 | |
|                         
 | |
|                         變量
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="2.4" data-path="ch2/ch2-04.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch2/ch2-04.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>2.4.</b>
 | |
|                         
 | |
|                         賦值
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="2.5" data-path="ch2/ch2-05.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch2/ch2-05.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>2.5.</b>
 | |
|                         
 | |
|                         類型
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="2.6" data-path="ch2/ch2-06.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch2/ch2-06.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>2.6.</b>
 | |
|                         
 | |
|                         包和文件
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="2.7" data-path="ch2/ch2-07.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch2/ch2-07.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>2.7.</b>
 | |
|                         
 | |
|                         作用域
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3" data-path="ch3/ch3.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch3/ch3.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>3.</b>
 | |
|                         
 | |
|                         基礎數據類型
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="3.1" data-path="ch3/ch3-01.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch3/ch3-01.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>3.1.</b>
 | |
|                         
 | |
|                         整型
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.2" data-path="ch3/ch3-02.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch3/ch3-02.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>3.2.</b>
 | |
|                         
 | |
|                         浮點數
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.3" data-path="ch3/ch3-03.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch3/ch3-03.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>3.3.</b>
 | |
|                         
 | |
|                         復數
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.4" data-path="ch3/ch3-04.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch3/ch3-04.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>3.4.</b>
 | |
|                         
 | |
|                         佈爾型
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.5" data-path="ch3/ch3-05.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch3/ch3-05.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>3.5.</b>
 | |
|                         
 | |
|                         字符串
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="3.6" data-path="ch3/ch3-06.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch3/ch3-06.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>3.6.</b>
 | |
|                         
 | |
|                         常量
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4" data-path="ch4/ch4.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch4/ch4.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>4.</b>
 | |
|                         
 | |
|                         復閤數據類型
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="4.1" data-path="ch4/ch4-01.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch4/ch4-01.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>4.1.</b>
 | |
|                         
 | |
|                         數組
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.2" data-path="ch4/ch4-02.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch4/ch4-02.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>4.2.</b>
 | |
|                         
 | |
|                         切片
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.3" data-path="ch4/ch4-03.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch4/ch4-03.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>4.3.</b>
 | |
|                         
 | |
|                         字典
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.4" data-path="ch4/ch4-04.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch4/ch4-04.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>4.4.</b>
 | |
|                         
 | |
|                         結構體
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.5" data-path="ch4/ch4-05.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch4/ch4-05.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>4.5.</b>
 | |
|                         
 | |
|                         JSON
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="4.6" data-path="ch4/ch4-06.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch4/ch4-06.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>4.6.</b>
 | |
|                         
 | |
|                         文本和HTML模闆
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="5" data-path="ch5/ch5.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch5/ch5.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>5.</b>
 | |
|                         
 | |
|                         函數
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="5.1" data-path="ch5/ch5-01.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch5/ch5-01.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>5.1.</b>
 | |
|                         
 | |
|                         函數聲明
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="5.2" data-path="ch5/ch5-02.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch5/ch5-02.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>5.2.</b>
 | |
|                         
 | |
|                         遞歸
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="5.3" data-path="ch5/ch5-03.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch5/ch5-03.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>5.3.</b>
 | |
|                         
 | |
|                         多返迴值
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="5.4" data-path="ch5/ch5-04.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch5/ch5-04.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>5.4.</b>
 | |
|                         
 | |
|                         錯誤
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="5.5" data-path="ch5/ch5-05.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch5/ch5-05.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>5.5.</b>
 | |
|                         
 | |
|                         函數值
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="5.6" data-path="ch5/ch5-06.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch5/ch5-06.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>5.6.</b>
 | |
|                         
 | |
|                         匿名函數
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="5.7" data-path="ch5/ch5-07.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch5/ch5-07.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>5.7.</b>
 | |
|                         
 | |
|                         可變參數
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="5.8" data-path="ch5/ch5-08.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch5/ch5-08.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>5.8.</b>
 | |
|                         
 | |
|                         Deferred函數
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="5.9" data-path="ch5/ch5-09.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch5/ch5-09.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>5.9.</b>
 | |
|                         
 | |
|                         Panic異常
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="5.10" data-path="ch5/ch5-10.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch5/ch5-10.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>5.10.</b>
 | |
|                         
 | |
|                         Recover捕穫異常
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6" data-path="ch6/ch6.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch6/ch6.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>6.</b>
 | |
|                         
 | |
|                         方法
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="6.1" data-path="ch6/ch6-01.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch6/ch6-01.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>6.1.</b>
 | |
|                         
 | |
|                         方法聲明
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6.2" data-path="ch6/ch6-02.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch6/ch6-02.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>6.2.</b>
 | |
|                         
 | |
|                         基於指鍼對象的方法
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6.3" data-path="ch6/ch6-03.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch6/ch6-03.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>6.3.</b>
 | |
|                         
 | |
|                         通過嵌入結構體來擴展類型
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6.4" data-path="ch6/ch6-04.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch6/ch6-04.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>6.4.</b>
 | |
|                         
 | |
|                         方法值和方法錶達式
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6.5" data-path="ch6/ch6-05.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch6/ch6-05.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>6.5.</b>
 | |
|                         
 | |
|                         示例: Bit數組
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="6.6" data-path="ch6/ch6-06.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch6/ch6-06.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>6.6.</b>
 | |
|                         
 | |
|                         封裝
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="7" data-path="ch7/ch7.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch7/ch7.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>7.</b>
 | |
|                         
 | |
|                         接口
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="7.1" data-path="ch7/ch7-01.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch7/ch7-01.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>7.1.</b>
 | |
|                         
 | |
|                         接口是閤約
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="7.2" data-path="ch7/ch7-02.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch7/ch7-02.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>7.2.</b>
 | |
|                         
 | |
|                         接口類型
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="7.3" data-path="ch7/ch7-03.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch7/ch7-03.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>7.3.</b>
 | |
|                         
 | |
|                         實現接口的條件
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="7.4" data-path="ch7/ch7-04.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch7/ch7-04.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>7.4.</b>
 | |
|                         
 | |
|                         flag.Value接口
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="7.5" data-path="ch7/ch7-05.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch7/ch7-05.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>7.5.</b>
 | |
|                         
 | |
|                         接口值
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="7.6" data-path="ch7/ch7-06.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch7/ch7-06.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>7.6.</b>
 | |
|                         
 | |
|                         sort.Interface接口
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="7.7" data-path="ch7/ch7-07.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch7/ch7-07.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>7.7.</b>
 | |
|                         
 | |
|                         http.Handler接口
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="7.8" data-path="ch7/ch7-08.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch7/ch7-08.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>7.8.</b>
 | |
|                         
 | |
|                         error接口
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="7.9" data-path="ch7/ch7-09.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch7/ch7-09.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>7.9.</b>
 | |
|                         
 | |
|                         示例: 錶達式求值
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="7.10" data-path="ch7/ch7-10.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch7/ch7-10.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>7.10.</b>
 | |
|                         
 | |
|                         類型斷言
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="7.11" data-path="ch7/ch7-11.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch7/ch7-11.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>7.11.</b>
 | |
|                         
 | |
|                         基於類型斷言識彆錯誤類型
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="7.12" data-path="ch7/ch7-12.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch7/ch7-12.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>7.12.</b>
 | |
|                         
 | |
|                         通過類型斷言査詢接口
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="7.13" data-path="ch7/ch7-13.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch7/ch7-13.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>7.13.</b>
 | |
|                         
 | |
|                         類型分支
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="7.14" data-path="ch7/ch7-14.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch7/ch7-14.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>7.14.</b>
 | |
|                         
 | |
|                         示例: 基於標記的XML解碼
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="7.15" data-path="ch7/ch7-15.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch7/ch7-15.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>7.15.</b>
 | |
|                         
 | |
|                         補充幾點
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8" data-path="ch8/ch8.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch8/ch8.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>8.</b>
 | |
|                         
 | |
|                         Goroutines和Channels
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="8.1" data-path="ch8/ch8-01.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch8/ch8-01.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>8.1.</b>
 | |
|                         
 | |
|                         Goroutines
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8.2" data-path="ch8/ch8-02.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch8/ch8-02.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>8.2.</b>
 | |
|                         
 | |
|                         示例: 併髮的Clock服務
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8.3" data-path="ch8/ch8-03.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch8/ch8-03.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>8.3.</b>
 | |
|                         
 | |
|                         示例: 併髮的Echo服務
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8.4" data-path="ch8/ch8-04.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch8/ch8-04.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>8.4.</b>
 | |
|                         
 | |
|                         Channels
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8.5" data-path="ch8/ch8-05.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch8/ch8-05.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>8.5.</b>
 | |
|                         
 | |
|                         併行的循環
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8.6" data-path="ch8/ch8-06.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch8/ch8-06.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>8.6.</b>
 | |
|                         
 | |
|                         示例: 併髮的Web爬蟲
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8.7" data-path="ch8/ch8-07.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch8/ch8-07.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>8.7.</b>
 | |
|                         
 | |
|                         基於select的多路復用
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8.8" data-path="ch8/ch8-08.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch8/ch8-08.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>8.8.</b>
 | |
|                         
 | |
|                         示例: 併髮的字典遍歷
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8.9" data-path="ch8/ch8-09.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch8/ch8-09.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>8.9.</b>
 | |
|                         
 | |
|                         併髮的退齣
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="8.10" data-path="ch8/ch8-10.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch8/ch8-10.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>8.10.</b>
 | |
|                         
 | |
|                         示例: 聊天服務
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="9" data-path="ch9/ch9.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch9/ch9.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>9.</b>
 | |
|                         
 | |
|                         基於共享變量的併髮
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="9.1" data-path="ch9/ch9-01.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch9/ch9-01.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>9.1.</b>
 | |
|                         
 | |
|                         競爭條件
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="9.2" data-path="ch9/ch9-02.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch9/ch9-02.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>9.2.</b>
 | |
|                         
 | |
|                         sync.Mutex互斥鎖
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="9.3" data-path="ch9/ch9-03.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch9/ch9-03.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>9.3.</b>
 | |
|                         
 | |
|                         sync.RWMutex讀寫鎖
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="9.4" data-path="ch9/ch9-04.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch9/ch9-04.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>9.4.</b>
 | |
|                         
 | |
|                         內存衕步
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="9.5" data-path="ch9/ch9-05.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch9/ch9-05.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>9.5.</b>
 | |
|                         
 | |
|                         sync.Once初始化
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="9.6" data-path="ch9/ch9-06.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch9/ch9-06.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>9.6.</b>
 | |
|                         
 | |
|                         競爭條件檢測
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="9.7" data-path="ch9/ch9-07.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch9/ch9-07.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>9.7.</b>
 | |
|                         
 | |
|                         示例: 併髮的非阻塞緩存
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="9.8" data-path="ch9/ch9-08.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch9/ch9-08.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>9.8.</b>
 | |
|                         
 | |
|                         Goroutines和綫程
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="10" data-path="ch10/ch10.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch10/ch10.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>10.</b>
 | |
|                         
 | |
|                         包和工具
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="10.1" data-path="ch10/ch10-01.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch10/ch10-01.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>10.1.</b>
 | |
|                         
 | |
|                         簡介
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="10.2" data-path="ch10/ch10-02.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch10/ch10-02.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>10.2.</b>
 | |
|                         
 | |
|                         導入路徑
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="10.3" data-path="ch10/ch10-03.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch10/ch10-03.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>10.3.</b>
 | |
|                         
 | |
|                         包聲明
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="10.4" data-path="ch10/ch10-04.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch10/ch10-04.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>10.4.</b>
 | |
|                         
 | |
|                         導入聲明
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="10.5" data-path="ch10/ch10-05.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch10/ch10-05.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>10.5.</b>
 | |
|                         
 | |
|                         匿名導入
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="10.6" data-path="ch10/ch10-06.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch10/ch10-06.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>10.6.</b>
 | |
|                         
 | |
|                         包和命名
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="10.7" data-path="ch10/ch10-07.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch10/ch10-07.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>10.7.</b>
 | |
|                         
 | |
|                         工具
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="11" data-path="ch11/ch11.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch11/ch11.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>11.</b>
 | |
|                         
 | |
|                         測試
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="11.1" data-path="ch11/ch11-01.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch11/ch11-01.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>11.1.</b>
 | |
|                         
 | |
|                         go test
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="11.2" data-path="ch11/ch11-02.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch11/ch11-02.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>11.2.</b>
 | |
|                         
 | |
|                         測試函數
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="11.3" data-path="ch11/ch11-03.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch11/ch11-03.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>11.3.</b>
 | |
|                         
 | |
|                         測試覆蓋率
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="11.4" data-path="ch11/ch11-04.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch11/ch11-04.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>11.4.</b>
 | |
|                         
 | |
|                         基準測試
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="11.5" data-path="ch11/ch11-05.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch11/ch11-05.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>11.5.</b>
 | |
|                         
 | |
|                         剖析
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="11.6" data-path="ch11/ch11-06.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch11/ch11-06.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>11.6.</b>
 | |
|                         
 | |
|                         示例函數
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="12" data-path="ch12/ch12.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch12/ch12.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>12.</b>
 | |
|                         
 | |
|                         反射
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="12.1" data-path="ch12/ch12-01.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch12/ch12-01.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>12.1.</b>
 | |
|                         
 | |
|                         為何需要反射?
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter active" data-level="12.2" data-path="ch12/ch12-02.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch12/ch12-02.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>12.2.</b>
 | |
|                         
 | |
|                         reflect.Type和reflect.Value
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="12.3" data-path="ch12/ch12-03.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch12/ch12-03.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>12.3.</b>
 | |
|                         
 | |
|                         Display遞歸打印
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="12.4" data-path="ch12/ch12-04.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch12/ch12-04.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>12.4.</b>
 | |
|                         
 | |
|                         示例: 編碼S錶達式
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="12.5" data-path="ch12/ch12-05.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch12/ch12-05.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>12.5.</b>
 | |
|                         
 | |
|                         通過reflect.Value脩改值
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="12.6" data-path="ch12/ch12-06.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch12/ch12-06.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>12.6.</b>
 | |
|                         
 | |
|                         示例: 解碼S錶達式
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="12.7" data-path="ch12/ch12-07.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch12/ch12-07.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>12.7.</b>
 | |
|                         
 | |
|                         穫取結構體字段標識
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="12.8" data-path="ch12/ch12-08.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch12/ch12-08.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>12.8.</b>
 | |
|                         
 | |
|                         顯示一個類型的方法集
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="12.9" data-path="ch12/ch12-09.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch12/ch12-09.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>12.9.</b>
 | |
|                         
 | |
|                         幾點忠告
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="13" data-path="ch13/ch13.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch13/ch13.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>13.</b>
 | |
|                         
 | |
|                         底層編程
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="13.1" data-path="ch13/ch13-01.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch13/ch13-01.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>13.1.</b>
 | |
|                         
 | |
|                         unsafe.Sizeof, Alignof 和 Offsetof
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="13.2" data-path="ch13/ch13-02.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch13/ch13-02.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>13.2.</b>
 | |
|                         
 | |
|                         unsafe.Pointer
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="13.3" data-path="ch13/ch13-03.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch13/ch13-03.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>13.3.</b>
 | |
|                         
 | |
|                         示例: 深度相等判斷
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="13.4" data-path="ch13/ch13-04.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch13/ch13-04.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>13.4.</b>
 | |
|                         
 | |
|                         通過cgo調用C代碼
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="13.5" data-path="ch13/ch13-05.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../ch13/ch13-05.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>13.5.</b>
 | |
|                         
 | |
|                         幾點忠告
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="14" data-path="exercise/ex.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../exercise/ex.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>14.</b>
 | |
|                         
 | |
|                         習題解答
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|             <ul class="articles">
 | |
|                 
 | |
|     
 | |
|         <li class="chapter " data-level="14.1" data-path="exercise/ex-ch1.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../exercise/ex-ch1.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>14.1.</b>
 | |
|                         
 | |
|                         第一章 入門
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
|             </ul>
 | |
|             
 | |
|         </li>
 | |
|     
 | |
|         <li class="chapter " data-level="15" data-path="errata.html">
 | |
|             
 | |
|                 
 | |
|                     <a href="../errata.html">
 | |
|                 
 | |
|                         <i class="fa fa-check"></i>
 | |
|                         
 | |
|                             <b>15.</b>
 | |
|                         
 | |
|                         勘誤
 | |
|                     </a>
 | |
|             
 | |
|             
 | |
|         </li>
 | |
|     
 | |
| 
 | |
| 
 | |
|             
 | |
|             <li class="divider"></li>
 | |
|             <li>
 | |
|                 <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
 | |
|                     本書使用 GitBook 釋出
 | |
|                 </a>
 | |
|             </li>
 | |
|             
 | |
|         </ul>
 | |
|     </nav>
 | |
| </div>
 | |
| 
 | |
|     <div class="book-body">
 | |
|         <div class="body-inner">
 | |
|             <div class="book-header" role="navigation">
 | |
|     <!-- Actions Left -->
 | |
|     
 | |
| 
 | |
|     <!-- Title -->
 | |
|     <h1>
 | |
|         <i class="fa fa-circle-o-notch fa-spin"></i>
 | |
|         <a href="../" >Go编程语言</a>
 | |
|     </h1>
 | |
| </div>
 | |
| 
 | |
|             <div class="page-wrapper" tabindex="-1" role="main">
 | |
|                 <div class="page-inner">
 | |
|                 
 | |
|                 
 | |
|                     <section class="normal" id="section-">
 | |
|                     
 | |
|                         <h2 id="122-reflecttype和reflectvalue">12.2. reflect.Type和reflect.Value</h2>
 | |
| <p>反射是由 reflect 包提供支持. 它定義了兩箇重要的類型, Type 和 Value. 一箇 Type 錶示一箇Go類型. 它是一箇接口, 有許多方法來區分類型和檢査它們的組件, 例如一箇結構體的成員或一箇函數的參數等. 唯一能反映 reflect.Type 實現的是接口的類型描述信息(§7.5), 衕樣的實體標識了動態類型的接口值.</p>
 | |
| <p>函數 reflect.TypeOf 接受任意的 interface{} 類型, 併返迴對應動態類型的reflect.Type:</p>
 | |
| <pre><code class="lang-Go">t := reflect.TypeOf(<span class="hljs-number">3</span>)  <span class="hljs-comment">// a reflect.Type</span>
 | |
| fmt.Println(t.String()) <span class="hljs-comment">// "int"</span>
 | |
| fmt.Println(t)          <span class="hljs-comment">// "int"</span>
 | |
| </code></pre>
 | |
| <p>其中 TypeOf(3) 調用將值 3 作爲 interface{} 類型參數傳入. 迴到 7.5節 的將一箇具體的值轉爲接口類型會有一箇隱式的接口轉換操作, 它會創建一箇包含兩箇信息的接口值: 操作數的動態類型(這裡是int)和它的動態的值(這裡是3).</p>
 | |
| <p>因爲 reflect.TypeOf 返迴的是一箇動態類型的接口值, 它總是返迴具體的類型. 因此, 下麫的代碼將打印 "*os.File" 而不是 "io.Writer". 稍後, 我們將看到 reflect.Type 是具有識別接口類型的錶達方式功能的.</p>
 | |
| <pre><code class="lang-Go"><span class="hljs-keyword">var</span> w io.Writer = os.Stdout
 | |
| fmt.Println(reflect.TypeOf(w)) <span class="hljs-comment">// "*os.File"</span>
 | |
| </code></pre>
 | |
| <p>要註意的是 reflect.Type 接口是滿足 fmt.Stringer 接口的. 因爲打印動態類型值對於調試和日誌是有幫助的, fmt.Printf 提供了一箇簡短的 %T 標誌參數, 內部使用 reflect.TypeOf 的結果輸齣:</p>
 | |
| <pre><code class="lang-Go">fmt.Printf(<span class="hljs-string">"%T\n"</span>, <span class="hljs-number">3</span>) <span class="hljs-comment">// "int"</span>
 | |
| </code></pre>
 | |
| <p>reflect 包中另一箇重要的類型是 Value. 一箇 reflect.Value 可以持有一箇任意類型的值. 函數 reflect.ValueOf 接受任意的 interface{} 類型, 併返迴對應動態類型的reflect.Value. 和 reflect.TypeOf 類似, reflect.ValueOf 返迴的結果也是對於具體的類型, 但是 reflect.Value 也可以持有一箇接口值.</p>
 | |
| <pre><code class="lang-Go">v := reflect.ValueOf(<span class="hljs-number">3</span>) <span class="hljs-comment">// a reflect.Value</span>
 | |
| fmt.Println(v)          <span class="hljs-comment">// "3"</span>
 | |
| fmt.Printf(<span class="hljs-string">"%v\n"</span>, v)   <span class="hljs-comment">// "3"</span>
 | |
| fmt.Println(v.String()) <span class="hljs-comment">// <span class="hljs-doctag">NOTE:</span> "<int Value>"</span>
 | |
| </code></pre>
 | |
| <p>和 reflect.Type 類似, reflect.Value 也滿足 fmt.Stringer 接口, 但是除非 Value 持有的是字符串, 否則 String 隻是返迴具體的類型. 相衕, 使用 fmt 包的 %v 標誌參數, 將使用 reflect.Values 的結果格式化.</p>
 | |
| <p>調用 Value 的 Type 方法將返迴具體類型所對應的 reflect.Type:</p>
 | |
| <pre><code class="lang-Go">t := v.Type()           <span class="hljs-comment">// a reflect.Type</span>
 | |
| fmt.Println(t.String()) <span class="hljs-comment">// "int"</span>
 | |
| </code></pre>
 | |
| <p>逆操作是調用 reflect.ValueOf 對應的 reflect.Value.Interface 方法. 它返迴一箇 interface{} 類型錶示 reflect.Value 對應類型的具體值:</p>
 | |
| <pre><code class="lang-Go">v := reflect.ValueOf(<span class="hljs-number">3</span>) <span class="hljs-comment">// a reflect.Value</span>
 | |
| x := v.Interface()      <span class="hljs-comment">// an interface{}</span>
 | |
| i := x.(<span class="hljs-typename">int</span>)            <span class="hljs-comment">// an int</span>
 | |
| fmt.Printf(<span class="hljs-string">"%d\n"</span>, i)   <span class="hljs-comment">// "3"</span>
 | |
| </code></pre>
 | |
| <p>一箇 reflect.Value 和 interface{} 都能保存任意的值. 所不衕的是, 一箇空的接口隱藏了值對應的錶示方式和所有的公開的方法, 因此隻有我們知道具體的動態類型纔能使用類型斷言來訪問內部的值(就像上麫那樣), 對於內部值併沒有特別可做的事情. 相比之下, 一箇 Value 則有很多方法來檢査其內容, 無論它的具體類型是什麼. 讓我們再次嘗試實現我們的格式化函數 format.Any.</p>
 | |
| <p>我們使用 reflect.Value 的 Kind 方法來替代之前的類型 switch. 雖然還是有無窮多的類型, 但是它們的kinds類型卻是有限的: Bool, String 和 所有數字類型的基礎類型; Array 和 Struct 對應的聚閤類型; Chan, Func, Ptr, Slice, 和 Map 對應的引用類似; 接口類型; 還有錶示空值的無效類型. (空的 reflect.Value 對應 Invalid 無效類型.)</p>
 | |
| <pre><code class="lang-Go">gopl.io/ch12/format
 | |
| <span class="hljs-keyword">package</span> format
 | |
| 
 | |
| <span class="hljs-keyword">import</span> (
 | |
|     <span class="hljs-string">"reflect"</span>
 | |
|     <span class="hljs-string">"strconv"</span>
 | |
| )
 | |
| 
 | |
| <span class="hljs-comment">// Any formats any value as a string.</span>
 | |
| <span class="hljs-keyword">func</span> Any(value <span class="hljs-keyword">interface</span>{}) <span class="hljs-typename">string</span> {
 | |
|     <span class="hljs-keyword">return</span> formatAtom(reflect.ValueOf(value))
 | |
| }
 | |
| 
 | |
| <span class="hljs-comment">// formatAtom formats a value without inspecting its internal structure.</span>
 | |
| <span class="hljs-keyword">func</span> formatAtom(v reflect.Value) <span class="hljs-typename">string</span> {
 | |
|     <span class="hljs-keyword">switch</span> v.Kind() {
 | |
|     <span class="hljs-keyword">case</span> reflect.Invalid:
 | |
|         <span class="hljs-keyword">return</span> <span class="hljs-string">"invalid"</span>
 | |
|     <span class="hljs-keyword">case</span> reflect.Int, reflect.Int8, reflect.Int16,
 | |
|         reflect.Int32, reflect.Int64:
 | |
|         <span class="hljs-keyword">return</span> strconv.FormatInt(v.Int(), <span class="hljs-number">10</span>)
 | |
|     <span class="hljs-keyword">case</span> reflect.Uint, reflect.Uint8, reflect.Uint16,
 | |
|         reflect.Uint32, reflect.Uint64, reflect.Uintptr:
 | |
|         <span class="hljs-keyword">return</span> strconv.FormatUint(v.Uint(), <span class="hljs-number">10</span>)
 | |
|     <span class="hljs-comment">// ...floating-point and complex cases omitted for brevity...</span>
 | |
|     <span class="hljs-keyword">case</span> reflect.Bool:
 | |
|         <span class="hljs-keyword">return</span> strconv.FormatBool(v.Bool())
 | |
|     <span class="hljs-keyword">case</span> reflect.String:
 | |
|         <span class="hljs-keyword">return</span> strconv.Quote(v.String())
 | |
|     <span class="hljs-keyword">case</span> reflect.Chan, reflect.Func, reflect.Ptr, reflect.Slice, reflect.Map:
 | |
|         <span class="hljs-keyword">return</span> v.Type().String() + <span class="hljs-string">" 0x"</span> +
 | |
|             strconv.FormatUint(<span class="hljs-typename">uint64</span>(v.Pointer()), <span class="hljs-number">16</span>)
 | |
|     <span class="hljs-keyword">default</span>: <span class="hljs-comment">// reflect.Array, reflect.Struct, reflect.Interface</span>
 | |
|         <span class="hljs-keyword">return</span> v.Type().String() + <span class="hljs-string">" value"</span>
 | |
|     }
 | |
| }
 | |
| </code></pre>
 | |
| <p>到目前未知, 我們的函數將每箇值視作一箇不可分割沒有內部結構的, 因此它叫 formatAtom. 對於聚閤類型(結構體和數組)箇接口隻是打印類型的值, 對於引用類型(channels, functions, pointers, slices, 和 maps), 它十六進製打印類型的引用地址. 雖然還不夠理想, 但是依然是一箇重大的進步, 併且 Kind 隻關心底層錶示, format.Any 也支持新命名的類型. 例如:</p>
 | |
| <pre><code class="lang-Go"><span class="hljs-keyword">var</span> x <span class="hljs-typename">int64</span> = <span class="hljs-number">1</span>
 | |
| <span class="hljs-keyword">var</span> d time.Duration = <span class="hljs-number">1</span> * time.Nanosecond
 | |
| fmt.Println(format.Any(x))                  <span class="hljs-comment">// "1"</span>
 | |
| fmt.Println(format.Any(d))                  <span class="hljs-comment">// "1"</span>
 | |
| fmt.Println(format.Any([]<span class="hljs-typename">int64</span>{x}))         <span class="hljs-comment">// "[]int64 0x8202b87b0"</span>
 | |
| fmt.Println(format.Any([]time.Duration{d})) <span class="hljs-comment">// "[]time.Duration 0x8202b87e0"</span>
 | |
| </code></pre>
 | |
| 
 | |
|                     
 | |
|                     </section>
 | |
|                 
 | |
|                 
 | |
|                 </div>
 | |
|             </div>
 | |
|         </div>
 | |
| 
 | |
|         
 | |
|         <a href="../ch12/ch12-01.html" class="navigation navigation-prev " aria-label="Previous page: 為何需要反射?"><i class="fa fa-angle-left"></i></a>
 | |
|         
 | |
|         
 | |
|         <a href="../ch12/ch12-03.html" class="navigation navigation-next " aria-label="Next page: Display遞歸打印"><i class="fa fa-angle-right"></i></a>
 | |
|         
 | |
|     </div>
 | |
| </div>
 | |
| 
 | |
|         
 | |
| <script src="../gitbook/app.js"></script>
 | |
| 
 | |
|     
 | |
|     <script src="../gitbook/plugins/gitbook-plugin-search/lunr.min.js"></script>
 | |
|     
 | |
| 
 | |
|     
 | |
|     <script src="../gitbook/plugins/gitbook-plugin-search/search.js"></script>
 | |
|     
 | |
| 
 | |
|     
 | |
|     <script src="../gitbook/plugins/gitbook-plugin-sharing/buttons.js"></script>
 | |
|     
 | |
| 
 | |
|     
 | |
|     <script src="../gitbook/plugins/gitbook-plugin-fontsettings/buttons.js"></script>
 | |
|     
 | |
| 
 | |
| <script>
 | |
| require(["gitbook"], function(gitbook) {
 | |
|     var config = {"highlight":{},"search":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2}};
 | |
|     gitbook.start(config);
 | |
| });
 | |
| </script>
 | |
| 
 | |
|         
 | |
|     </body>
 | |
|     
 | |
| </html>
 |