<commit_before>//
//  ToolKit.swift
//  SwiftLearn
//
//  Created by gaoliang5 on 2018/4/13.
//  Copyright © 2018年 gaoliang5. All rights reserved.
//

import Foundation

/* typealias 主要用于类型区分，在功能模块上的划分 */
typealias TKError = Error

class ToolKit {
	private static let tkInfo : (version: String, descption: String) = (TKVersion, descrition)
	/* """ 来代表 string 换行处理 */
	private static let descrition = """
		tool kit 是一个工具 class，用来做一些通用性的操作，比如打log，统一的逻辑处理，异常处理等。
		都可以在这里进行
	"""
	
	private static let TKVersion = "0.0" // 常量，不可变 let 声明
	
	public class func TKLog(funcString: String = #function, file: String = #file, line: Int = #line, items: Any...) {
		//		print(#line, #file, #column, #function)
		print("func: \(funcString) file: \(file) line: \(line) msg: \(items)")
	}
	public class func TKLog(funcString: String = #function, file: String = #file, line: Int = #line, _ item: Any) {
		//		print(#line, #file, #column, #function)
		print("func: \(funcString) file: \(file) line: \(line) msg: \(item)")
	}
	
	public class func version () -> String {
		return TKVersion
	}
	
	public class func toolKitInfo() -> (String, String) {
		(tkInfo.0, tkInfo.1) //获取tuple 元素的方式 1
		return (tkInfo.version, tkInfo.descption) // 获取tuple 元素的方式 2
	}
}

<commit_msg>【value types】string<commit_after>//
//  ToolKit.swift
//  SwiftLearn
//
//  Created by gaoliang5 on 2018/4/13.
//  Copyright © 2018年 gaoliang5. All rights reserved.
//

import Foundation

/* typealias 主要用于类型区分，在功能模块上的划分 */
typealias TKError = Error

class ToolKit {
	private static let tkInfo : (version: String, descption: String) = (TKVersion, descrition)
	/* """ 来代表 string 换行处理 */
	private static let descrition = """
		tool kit 是一个工具 class，用来做一些通用性的操作，比如打log，统一的逻辑处理，异常处理等。
		都可以在这里进行
	"""
	
	private static let TKVersion = "0.0" // 常量，不可变 let 声明
	
	public class func TKLog(funcString: String = #function, file: String = #file, line: Int = #line, items: Any...) {
		//		print(#line, #file, #column, #function)
		print("func: \(funcString) file: \(file) line: \(line) msg: \(items)")
	}
	public class func TKLog(funcString: String = #function, file: String = #file, line: Int = #line, _ item: Any) {
		//		print(#line, #file, #column, #function)
		print("func: \(funcString) file: \(file) line: \(line) msg: \(item)")
	}
	
	public class func version () -> String {
		return TKVersion
	}
	
	public class func toolKitInfo() -> (String, String) {
		(tkInfo.0, tkInfo.1) //获取tuple 元素的方式 1
		return (tkInfo.version, tkInfo.descption) // 获取tuple 元素的方式 2
	}
	
	/* string is value type:
	在必要的时候，才会进行copy
	没有修改的时候，是不会发生copy操作的， 为了保证性能 */
	public class func encode(userInfo: Any) -> String {
		return "\(userInfo)"
	}
}


{'fraction_non_alphanumeric': 0.15523059617547807, 'fraction_numerical': 0.014248218972628422, 'mean_word_length': 3.5920826161790016, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 8, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4104810', 'n_tokens_mistral': 1138, 'n_tokens_neox': 1101, 'n_words': 276}